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" } }