有用PHP依赖管理工具Composer新手教程
PHP依赖管理工具Composer新手教程
依赖管理
Composer 不是一个包管理器。
是的,它涉及 "packages" 和 "libraries",但它在每一个项目的基础上进行管理,在你项目的某个文件夹中(比如 vendor)进行安装。
默认情况下它不会在全局安装不论什么东西。因此,这不过一个依赖管理。
这样的想法并不新奇,Composer 受到了 node's npm 和 ruby's bundler 的强烈启示。而当时 PHP 下并没有类似的工具。
Composer 将这样为你解决这个问题:
你有一个项目依赖于若干个库。
当中一些库依赖于其它库。
你声明你所依赖的东西。
Composer 会找出哪个版本号的包须要安装。并安装它们(将它们下载到你的项目中)。
參考:http://www.lai18.com/content/319715.html
http://docs.phpcomposer.com/00-intro.md
声明依赖关系
例如说,你正在创建一个项目,你须要一个库来做日志记录。你决定使用 monolog。为了将它加入到你的项目中,你所须要做的就是创建一个 composer.json 文件。当中描写叙述了项目的依赖关系。
{
"require": {
"monolog/monolog": "1.2.*"
}
}
我们仅仅要指出我们的项目须要一些 monolog/monolog 的包,从 1.2 開始的不论什么版本号。
系统要求
执行 Composer 须要 PHP 5.3.2+ 以上版本号。一些敏感的 PHP 设置和编译标志也是必须的,但对于不论什么不兼容项安装程序都会抛出警告。
我们将从包的来源直接安装,而不是简单的下载 zip 文件,你须要 git 、 svn 或者 hg ,这取决于你加载的包所使用的版本号管理系统。
Composer 是多平台的,我们努力使它在 Windows 、 Linux 以及 OSX 平台上执行的相同出色。
Linux/Unix下安装
局部安装
要真正获取 Composer。我们须要做两件事。
首先安装 Composer (相同的,这意味着它将下载到你的项目中):
curl -sS https://getcomposer.org/installer | php
注意: 假设上述方法因为某些原因失败了,你还能够通过 php >下载安装器:
php -r "readfile('https://getcomposer.org/installer');" | php
这将检查一些 PHP 的设置。然后下载 composer.phar 到你的工作文件夹中。
这是 Composer 的二进制文件。
这是一个 PHAR 包(PHP 的归档),这是 PHP 的归档格式能够帮助用户在命令行中运行一些操作。
你能够通过 --install-dir 选项指定 Composer 的安装文件夹(它能够是一个绝对或相对路径):
curl -sS https://getcomposer.org/installer | php -- --install-dir=bin
全局安装
你能够将此文件放在不论什么地方。假设你把它放在系统的 PATH 文件夹中。你就能在全局訪问它。
在类Unix系统中,你甚至能够在使用时不加 php 前缀。
你能够运行这些命令让 composer 在你的系统中进行全局调用:
curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer
注意: 假设上诉命令由于权限执行失败。 请使用 sudo 再次尝试执行 mv 那行命令。
如今仅仅须要执行 composer 命令就能够使用 Composer 而不须要输入 php composer.phar。
全局安装 (on OSX via homebrew)
Composer 是 homebrew-php 项目的一部分。
brew update
brew tap josegonzalez/homebrew-php
brew tap homebrew/versions
brew install php55-intl
brew install josegonzalez/php/composer
Windows下安装
使用安装程序
这是将 Composer 安装在你机器上的最简单的方法。
下载而且执行 Composer-Setup.exe。它将安装最新版本号的 Composer 。并设置好系统的环境变量,因此你能够在不论什么文件夹下直接使用 composer 命令。
手动安装
设置系统的环境变量 PATH 并执行安装命令下载 composer.phar 文件:
C:\Users\username>cd C:\bin
C:\bin>php -r "readfile('https://getcomposer.org/installer');" | php
注意: 假设收到 readfile 错误提示。请使用 http 链接或者在 php.ini 中开启 php_openssl.dll 。 在 composer.phar 同级文件夹下新建文件 composer.bat :
C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat
关闭当前的命令行窗体。打开新的命令行窗体进行測试:
C:\Users\username>composer -V
Composer version 27d8904
使用 Composer
如今我们将使用 Composer 来安装项目的依赖。
要解决和下载依赖。请运行 install 命令:
php composer.phar install
假设你进行了全局安装。而且没有 phar 文件在当前文件夹。请使用以下的命令取代:
composer install
继续 上面的样例。这里将下载 monolog 到 vendor/monolog/monolog 文件夹。
自己主动载入
除了库的下载。Composer 还准备了一个自己主动载入文件。它能够载入 Composer 下载的库中全部的类文件。
使用它。你仅仅须要将以下这行代码加入到你项目的引导文件里:
require 'vendor/autoload.php';
如今我们就能够使用 monolog 了!
延伸阅读
3smarty自己定义函数htmlcheckboxes使用方法实例
20PHP异常处理
29PHP自带Session隐患(session文件独占锁引起堵塞)
32PHP SPL标准库之数据结构双链表(SplDoublyLinkedList)
33PHP SPL标准库之数据结构固定长度数组(SplFixedArray)
35PHP SPL标准库之数据结构队列(SplQueue)和优先队列(SplPriorityQueue)
37php以fastCGI的方式执行时文件系统权限问题及解决方法
39百度project师讲PHP函数的实现原理及性能分析(二)
40百度project师讲PHP函数的实现原理及性能分析(三)
有用PHP依赖管理工具Composer新手教程的更多相关文章
- PHP的依赖管理工具----composer
安装Composer 参考:https://getcomposer.org/doc/01-basic-usage.md composer 是PHP依赖管理工具 PHP最低版本要求5.3.2,需要允许o ...
- PHP依赖管理工具Composer入门
作者: JeremyWei | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址: http://weizhifeng.net/manage-php-dependency-wi ...
- PHP的包依赖管理工具Composer简介
composer是一个基于项目的依赖管理器,负责将php项目的所依赖的包和库安装在项目的目录中,默认不会不会安装任何数据到全局.他用于取代之前pear工具 1 安装Composer curl -sS ...
- Composer : php依赖管理工具
原始时代 我记得在当时用php的时候还没有composer,只有个pear,但是不好用呀,还不如直接在互联网上到处复制代码了,更快更不容易出错,当时也没有github这么好的社区工具了 总结如下 代码 ...
- composer php依赖管理工具
#composer是什么 Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们. composer出现之前我们php项目依赖管理大部分都是手动 ...
- windows下安装php依赖关系管理工具composer
1.安装Composer Composer是PHP的依赖管理工具之一,官方网站 http://getcomposer.org/ .它支持多种安装方式,对于在win下做开发的草来说,最便捷的方式就是下载 ...
- Go 包依赖管理工具 —— govendor
govendor 是一个基于 vendor 机制实现的 Go 包依赖管理命令行工具.与原生 vendor 无侵入性融合,也支持从其他依赖管理工具迁移,可以很方便的实现同一个包在不同项目中不同版本.以及 ...
- yarn依赖管理工具的使用
Yarn是Facebook发布的一款依赖管理工具,它比npm更快.更高效. 与NPM命令对照 npm install => yarn install npm install --save [pa ...
- Golang依赖管理工具:glide从入门到精通使用
这是一个创建于 2017-07-22 05:33:09 的文章,其中的信息可能已经有所发展或是发生改变. 介绍 不论是开发Java还是你正在学习的Golang,都会遇到依赖管理问题.Java有牛逼轰轰 ...
随机推荐
- Map的常用方法keySet()、entrySet()
Map是java中的接口,Map.Entry是Map的一个内部接口. Map提供了一些常用方法,如keySet().entrySet()等方法,keySet()方法返回值是Map中key值的集合:en ...
- 【bzoj2161】布娃娃 权值线段树
题目描述 小时候的雨荨非常听话,是父母眼中的好孩子.在学校是老师的左右手,同学的好榜样.后来她成为艾利斯顿第二代考神,这和小时候培养的良好素质是分不开的.雨荨的妈妈也为有这么一个懂事的女儿感到高兴.一 ...
- [ACG001E] BBQ hard [dp]
题面: 传送门 思路: 首先,一个暴力的想法 对于每一对pack,求出f(ai+aj,bi+bj),其中f(x,y)=(x+y)!/(x!y!),也就是x个a,y个b的排列方式个数 然后转化模型,将f ...
- [USACO15JAN]草鉴定Grass Cownoisseur (分层图,最长路,$Tarjan$)
题目链接 Solution 水水的套路题. 可以考虑到一个环内的点是可以都到达的,所以 \(tajan\) 求出一个 \(DAG\) . 然后 \(DAG\) 上的点权值就是 \(scc\) 的大小. ...
- DFA Minimization
有点晚了我就不调试了..不过说是这么说我还是过了编译的.. #include<bits/stdc++.h> using namespace std; namespace DFA{ cons ...
- js面向对象实现切换面板
js面向对象的特点: 继承(inheritance):对象方法和属性的继承 多态(polymorphism):组件开发 抽象(abstract):抓住核心问题 封装(encapsulation):把功 ...
- Docker Daemon 连接方式详解
前言 在 Docker 常用详解指令 一文中粗粗提了一下, Docker 是分为客户端和服务端两部分的, 本文将介绍客户端是如何连接服务端的. 连接方式 1. UNIX域套接字 默认就是这种方式, 会 ...
- .net3.5下使用LINQ递归算法实现简洁代码
原文发布时间为:2011-04-24 -- 来源于本人的百度文章 [由搬家工具导入] http://www.cnblogs.com/wintersun/archive/2009/03/29/14243 ...
- About chrysanthemum and matrimony vine
红枣.枸杞茶:可经常喝. 菊花茶.枸杞茶:适当,一般建议喝3天停3天会比较妥当. 湿热重的人不宜食红枣,可只泡枸杞.菊花或将红枣改为红茶,也能起到明目.养肝.益血.抗疲劳的功效.红枣要去核,才不会太燥 ...
- 嵌入式 Linux线程锁详解pthread_mutexattr_t【转】
转自:http://blog.sina.com.cn/s/blog_8795b0970101il6g.html 在Posix Thread中定义有一套专门用于线程同步的mutex函数. . 创建和销毁 ...