composer是一个PHP包管理工具,类似node的npm,ruby的bundler。它的目的,是自动管理PHP项目中的库依赖关系。
从composer官网下载最新的composer。一共是4个PHP命令。
1.0 下载:
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
2.0 验证SHA值。不同的版本当然有不同的SHA值,所以这个命令应该在你下载时,从download页面获取。
3.0 运行安装:
$ mkdir bin
$ php composer-setup.php --install-dir=bin --filename=composer
命令行参数表示把composer安装在本地目录下的bin目录中,并重命名为compser。这步的主要工作:
安装后,composer即是一个可执行文件。当然也可以安装在系统目录下供全局访问。
4.0 删除composer-setup.php文件。
$ php -r "unlink('composer-setup.php');"
1.0 首先在项目目录中,建立一个composer.json
文件,其中描述依赖关系。如:
$ cat composer.json
{
"require": {
"monolog/monolog": "1.0.*"
}
}
依赖包的写法是:vendor_name/project_name
,以上monolog/monolog
表示vendor是monolog,项目名也是monolog。
2.0 运行composer,下载依赖的库:
$ composer install
这个命令完成以下工作:
composer.lock
文件autoload.php
文件。composer
目录。其中是autoload的具体实现。monolog/monolog
目录。表示vendor/project。composer.lock
中定义了所有composer install
需要的版本依赖关系。如果用git管理源码,应该把composer.json
和composer.lock
加入git仓库,而忽略vendor
目录(加入.gitigore)。
composer.json
和composer.lock
的功能看起来很像,但其实不同。一旦生成了.lock文件,再次运行composer install时,就直接用.lock文件下载依赖了。此时,可能会错过依赖库的最新版本,例如,生成.lock时monolog的版本是1.0.1,而随后monolog升级到1.0.9,为了取得依赖库的最新版本,我们需要使用命令:
$ composer update
这个命令将读取composer.json文件,并生成新的composer.lock。
Packagist是用composer打包发布PHP库的大本营。我们可以从这里下载实用的PHP库。
通过composer下载依赖的第三方库后,我们就可以直接使用了。最简单的方式是通过autoloading。在PHP代码中加入:
<?php
require_once("vendor/autoload.php");
$log = new Monolog\Logger("applog");
$log->pushHandler(new Monolog\Handler\StreamHandler("app.log", Monolog\Logger::WARNING));
$log->addWarning("foobar");
?>
运行并查看日志:
$ php test.php
$ cat app.log
[2016-06-17 11:01:04] applog.WARNING: foobar [] []