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