phpcomposer
PHP 5.3.2+
Composer 不是一个包管理器,但它在每一个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认状况下它不会在全局安装任何东西。所以,这仅仅是一个依赖管理。php
curl -sS https://getcomposer.org/installer | php
解决和下载依赖,请执行 install 命令:html
php composer.phar install
自动加载:Composer 还准备了一个自动加载文件,它能够加载 Composer 下载的库中全部的类文件。使用它,你只须要将下面这行代码添加到你项目的引导文件中。git
require 'vendor/autoload.php';
在你的项目中使用 Composer,你只须要一个composer.json
文件。该文件包含了项目的依赖和其它的一些元数据。web
{ "require": { "monolog/monolog": "1.0.*" } }
由供应商名称和其项目名称构成。json
约束方法:app
>=1.0 >=1.0,<2.0 >=1.0,<1.1|>=1.2
默认状况下只有稳定的发行版才会被考虑在内。若是你也想得到 RC、beta、alpha 或 dev 版本,你可使用 稳定标志。你能够对全部的包作 最小稳定性 设置,而不是每一个依赖逐一设置。composer
php composer.phar install
这将会找到 monolog/monolog 的最新版本,并将它下载到 vendor 目录。 这是一个惯例把第三方的代码到一个指定的目录 vendor。若是是 monolog 将会建立 vendor/monolog/monolog 目录。
install 命令将建立一个 composer.lock 文件到你项目的根目录中。
tips:若是你正在使用Git来管理你的项目, 你可能要添加 vendor 到你的 .gitignore 文件中。 你不会但愿将全部的代码都添加到你的版本库中。curl
在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定该项目的特定版本。
请提交你应用程序的 composer.lock (包括 composer.json)到你的版本库中。
install 命令将会检查锁文件是否存在,若是存在,它将下载指定的版本(忽略 composer.json 文件中的定义)。
lock后要更新你的依赖版本请使用 update 命令。这将获取最新匹配的版本(根据你的 composer.json 文件)并将新版本更新进锁文件。ui
php composer.phar update
选择更新:url
php composer.phar update monolog/monolog [...]
更新本身:
composer selfupdate
packagist 是 Composer 的主要资源库。
访问 packagist website (packagist.org),你能够浏览和搜索资源包。
库的自动加载信息,Composer 生成了一个 vendor/autoload.php 文件。
require 'vendor/autoload.php';
这使得你能够很容易的使用第三方代码。例如:若是你的项目依赖 monolog,你就能够像这样开始使用这个类库,而且他们将被自动加载。
$log = new Monolog\Logger('name'); $log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING)); $log->addWarning('Foo');
系统全局配置: 即将配置信息添加到 Composer 的全局配置文件 config.json 中。见“方法一”
单个项目配置: 将配置信息添加到某个项目的 composer.json 文件中。见“方法二”
composer config -g repo.packagist composer https://packagist.phpcomposer.com
进入项目根目录(也就是 composer.json 文件所在目录),执行以下命令:
composer config repo.packagist composer https://packagist.phpcomposer.com
上述命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息(你也能够本身手工添加):
"repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } }