使用Composer管理PHP依赖关系
Composer 是PHP中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件。
系统需求:
Composer 需要PHP5.3.2+ 以上的环境来运行。有几个敏感的PHP设置和编译标志也是必需的,但安装程序会发出警告当存在任何不兼容的情况。比如PHP的扩展的要求是,安装或重新编译php without –disable-phar
安装Composer
Composer需要PHP 5.3.2+才能运行。
$ curl -sS https://getcomposer.org/installer | php
这个命令会将composer.phar
下载到当前目录。PHAR(PHP 压缩包)是一个压缩格式,可以在命令行下直接运行。
你可以使用--install-dir
选项将Composer安装到指定的目录,例如:
$ curl -sS https://getcomposer.org/installer | php -- --install-dir=bin
当然也可以进行全局安装:
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
不过通常情况下只需将composer.phar
的位置加入到PATH
环境变量就可以,不一定要全局安装。
声明依赖
在项目目录下创建一个composer.json
文件,指明依赖,比如,你的项目依赖 monolog:
{
"require": {
"monolog/monolog": "1.2.*"
}
}
安装依赖
安装依赖非常简单,只需在项目目录下运行:
composer install
如果没有全局安装的话,则运行:
php composer.phar install
自动加载
好,现在安装完了,该怎么使用呢?Composer自动生成了一个autoload文件,你只需要引用它,然后就可以非常方便的去使用第三方的类库了
Composer提供了自动加载的特性,只需在你的代码的初始化部分中加入下面一行:
require 'vendor/autoload.php';
对于我们需要的monolog,就可以这样用了:
use Monolog\Logger; use Monolog\Handler\StreamHandler; // create a log channel $log = new Logger('name'); $log->pushHandler(new StreamHandler('/path/to/log/log_name.log', Logger::WARNING)); // add records to the log $log->addWarning('Foo'); $log->addError('Bar');
在这个过程中,Composer做了什么呢?它生成了一个autoloader,再根据各个包自己的autoload配置,从而帮我们进行自动加载的工作。
Composer是PHP中的一个依赖关系管理工具。通过Composer我们可以在发布软件时节省大量的文件数目和控制依赖包的版本。
Composer中文网:http://www.phpcomposer.com/
Composer Github项目:https://github.com/composer/composer
PHP Composer软件包列表:https://packagist.org/
参考: Composer 中文网