Composer是PHP中的一個依賴管理工具. 它可讓你聲明本身項目所依賴的庫,而後它將會在項目中爲你安裝這些庫。php
Composer不是包管理器。是的,它實際上和"包"或者庫打交道,可是它是以項目爲單位進行管理,把它們安裝到你項目中的一個目錄(例如vendor
)。默認狀況下它不會以全局的方式安裝任何東西。所以,它是一個依賴管理器。html
這個想法並不新鮮,Composer的靈感是來自於node的npm和ruby的bundler。可是目前PHP尚未一個這樣的工具。node
Composer解決的問題是:git
a) 你有一個依賴N多庫的項目。github
b) 這些庫中一些又依賴於其餘的庫。npm
c) 你聲明你所依賴的庫。json
d) Composer找出哪些包的哪一個版本將會被安裝,而後安裝它們(也就是把它們下載到你的項目中)。ruby
假設你正在建立一個項目,而後你須要一個日誌操做的庫。你決定使用monolog。爲了把它加入到你的項目中,你須要作的就是建立一個名爲composer.json
的文件,其描述這個項目的依賴關係。composer
{ "require": { "monolog/monolog": "1.2.*" } }
咱們簡單的描述說咱們的項目依賴某個monolog/monolog
包,版本只要是以1.2
開頭的就行。curl
Composer須要PHP 5.3.2+才能運行。一些靈敏的PHP設置和編譯選項也是必須的,不過安裝程序(installer)會警告你任何不兼容的地方。
若是想要從源碼而不是簡單的從zip壓縮包中安裝軟件包的話,你將須要git,svn或者hg,這依賴於軟件包是經過什麼進行版本控制的。
Composer是兼容多平臺的,而且咱們力爭使其在Windows,Linux和OSX上的運行無差別。
爲了獲取Composer,咱們須要作兩件事。第一個是安裝Composer(前面說過了,這意味下載它到你的項目中):
$ curl -sS https://getcomposer.org/installer | php
這隻會檢查一些PHP設置,而後下載composer.phar
到你的工做目錄中。這個文件是Composer二進制文件。它是一個PHAR (PHP archive),PHP的歸檔格式,也能夠像其餘命令同樣在命令行上運行。
你可使用--install-dir
選項,而且提供一個目標目錄(能夠是絕對或者相對路徑)從而把Composer安裝到一個指定的目錄:
$ curl -sS https://getcomposer.org/installer | php -- --install-dir=bin
你能夠把這個文件放到任何你想放的地方。若是你把它放到你的PATH
中,你就能夠全局訪問它了。在類unix系統中你甚至可使它可執行,而且調用的時候不須要php
。
你能夠執行這些命令從而可以在你的系統上簡單的訪問composer
:
$ curl -sS https://getcomposer.org/installer | php $ sudo mv composer.phar /usr/local/bin/composer
而後,只須要執行composer
命令來運行Composer,而不是php composer.phar
。
這是在你的機器上安裝Composer最簡單的方法。
下載並運行Composer-Setup.exe,它將會安裝最新的Composer版本而且設置好PATH,而後你就能夠在命令中的任何目錄下調用composer
了。
切換到一個存在於PATH
環境變量中的目錄,而後執行安裝代碼片斷來下載composer.phar:
C:\Users\username>cd C:\bin C:\bin>php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"
建立一個新的以.bat
結尾的composer文件:
C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat
關閉你當前的終端。打開一個新的終端測試一下:
C:\Users\username>composer -V Composer version 27d8904 C:\Users\username>
咱們接下來要使用Composer來安裝項目的依賴。若是你在當前目錄下沒有一個叫做composer.json
的文件,請跳到基本使用章節。
爲了解決並下載依賴,運行install
命令:
$ php composer.phar install
若是你是全局安裝,而且目錄下沒有phar文件,那麼運行這個:
$ composer install
若是是上面的例子,這個操做將會下載monolog到vendor/monolog/monolog
目錄。
除了下載庫以外,Composer也會建立一個自動加載文件,這個文件可以自動加載Composer下載的庫中全部的類。若是想使用它,只須要在你代碼啓動的地方加上以下代碼:
require 'vendor/autoload.php';
哇哦!如今開始使用monolog吧! 若是想進一步學習Composer,繼續閱讀「基本使用」章節。 若是想要找須要的package,到Packagist。