一直以来,php的包管理都总是遭人诟病(pear),直到Composer的出现,才让php有了像NodeJS的npm般的使用体验。
Composer是什么
Composer 是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
说白了,它其实就是一个工具,可以帮助我们管理依赖关系。我们只需要遵循某种格式声明项目依赖哪些库、版本等(创建一个 composer.json
文件),Composer就可以找出哪个版本的包需要安装,并安装它们。
更多详细介绍,可以参考:http://www.phpcomposer.com/what-is-composer/
Composer安装
Composer有局部安装和全局安装两种方式。局部安装就是将安装到项目工作目录中,用户使用 php composer.phar
之类的命令进行操作。我这里采用全局安装的方式,方便以后构建其他项目时使用。
p.s. 需要注意的是,Composer需要PHP 5.3.2+才能运行。php版本低于 5.3.2 的童鞋赶紧升级吧,话说现在 PHP 7.0.0 RC 1 都出来了,还用 php 5.3 以下版本的童鞋是否太原始了一点,博主现在都用 php 5.6.10 了。
博主是在CentOS下安装Composer,安装过程如下(方法一):
curl -sS https://getcomposer.org/installer | php
注意: 如果上述方法由于某些原因失败了,你还可以通过 php >下载安装器(方法二):
php -r "readfile('https://getcomposer.org/installer');" | php
不得不说,博主的运气不咋的,第一种方法果然失败了,提示:
curl: (6) Couldn't resolve host 'https'
curl安装的时候没有支持https,就会这样提示,配置curl支持https这又是另外一说了,这里先用第二种方式安装Composer。
安装成功,得到以下提示:
这将检查一些 PHP 的设置,然后下载 composer.phar 到你的工作目录中。这是 Composer 的二进制文件。这是一个 PHAR 包(PHP 的归档),这是 PHP 的归档格式可以帮助用户在命令行中执行一些操作。
然后把composer.phar移动到系统的 PATH
目录中,就可以全局访问了。
sudo mv composer.phar /usr/local/bin/composer
这样就全局安装完成了。
在命令行输入 composer:
composer
就可以得到Composer的选项和可用命令列表了:
Composer使用
声明依赖
在项目目录下创建一个composer.json文件,指明依赖,比如:
{
"require": {
"monolog/monolog": "1.16.*"
}
}
安装依赖
安装依赖非常简单,只需在项目目录下运行:
composer install
镜像修改
使用过Composer的童鞋都会发现,安装依赖包的时候那简直是龟速,那是因为使用Composer安装package的时候需要先到Packagist.org上去获取包的元数据,然后到 Github.com或其他第三方服务器上面获取zip包,而这两个站有时候会被GFW墙掉,即使没被墙,这两个网站的服务器都是国外,速度可想而知。
所幸有业界大神早就建好了中国镜像,我们就只需要使用国内的镜像就好了,修改 composer 的全局配置文件:
composer config -g repositories.packagist composer http://packagist.phpcomposer.com