Composer 是 PHP 的一個依賴管理工具。它允許你申明專案所依賴的程式碼庫,它會在你的專案中為你安裝他們。
依賴管理
Composer 不是套件管理器。是的,它涉及 "packages" 和 "libraries",但它在每個專案的基礎上進行管理,在你專案的某個目錄中(例如 vendor)進行安裝。預設情況下它不會在全域安裝任何東西。因此,這只是一個依賴管理。
這種想法並不新鮮,Composer 受到了 node's npm 和 ruby's bundler 的強烈啟發。而當時 PHP 下並沒有類似的工具。
Composer 將這樣為你解決問題:
你有一個專案依賴若干個函式庫。
其中一些函式庫依賴其他函式庫。
你聲明你所依賴的東西。
Composer 會找出哪個版本的套件需要安裝,並安裝它們(將它們下載到你的專案中)。
聲明依賴關係
比方說,你正在創建一個項目,你需要一個庫來做日誌記錄。你決定使用 monolog。為了將它添加到你的專案中,你所需要做的就是建立一個 composer.json 文件,其中描述了專案的依賴關係。
{ "require": { "monolog/monolog": "1.2.*" } }
我們只要指出我們的專案需要一些 monolog/monolog 的包,從 1.2 開始的任何版本。
系統要求
運行 Composer 需要 PHP 5.3.2+ 以上版本。一些敏感的 PHP 設定和編譯標誌也是必須的,但對於任何不相容項安裝程式都會拋出警告。
我們將從包的來源直接安裝,而不是簡單的下載 zip 文件,你需要 git 、 svn 或 hg ,這取決於你載入的包所使用的版本管理系統。
Composer 是多平台的,我們努力使它在 Windows 、 Linux 以及 OSX 平台上運作的同樣出色。
Linux/Unix下安裝
局部安裝
要真正取得 Composer,我們需要做兩件事。首先安裝Composer (同樣的,這意味著它將下載到你的專案中):
curl -sS https://getcomposer.org/installer | php
注意: 如果上述方法由於某些原因失敗了,你還可以透過php >下載安裝器:
php -r "readfile('https://getcomposer.org/installer');" | php
這將檢查一些PHP 的設置,然後下載composer.phar 到你的工作目錄。這是 Composer 的二進位。這是一個 PHAR 套件(PHP 的歸檔),這是 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 mv composer.phar /usr/local/bin/composer
注意: 如果上訴指令因為權限執行失敗, 請使用 sudo 再次嘗試執行 mv 那行指令。 現在只需要執行 composer 指令就可以使用 Composer 而不需要輸入 php composer.phar。
全域安裝 (on OSX via homebrew)
Composer 是 homebrew-php 專案的一部分。
brew update brew tap josegonzalez/homebrew-php brew tap homebrew/versions brew install php55-intl brew install josegonzalez/php/composer
Windows下安裝
使用安裝程式
這是將 Composer 安裝在你機器上的最簡單的方法。
下載並且執行 Composer-Setup.exe,它將安裝最新版本的 Composer ,並設定好系統的環境變量,因此你可以在任何目錄下直接使用 composer 指令。
手動安裝
設定係統的環境變數 PATH 並執行安裝指令下載 composer.phar 檔案:
C:\Users\username>cd C:\bin C:\bin>php -r "readfile('https://getcomposer.org/installer');" | php
注意: 如果收到 readfile 錯誤提示,請使用 http 連結或在 php.ini 中開啟 php_openssl.dll 。 在composer.phar 同級目錄下新檔案composer.bat :
C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat
關閉目前的命令列窗口,開啟新的命令列視窗進行測試:
C:\Users\username>composer -V Composer version 27d8904
使用Composer
現在我們將使用Composer 來安裝專案的依賴。
要解決和下載依賴,請執行install 命令:
php composer.phar install
如果你進行了全域安裝,並且沒有phar 檔案在當前目錄,請使用下面的命令代替:
composer install
繼續上面的例子,這裡將下載monolog到vendor/monolog/monolog 目錄。
自動加載
除了庫的下載,Composer 還準備了一個自動加載文件,它可以加載 Composer 下載的庫中所有的類文件。使用它,你只需要將下面這行程式碼加入你專案的引導檔案:
require 'vendor/autoload.php';
現在我們就可以使用 monolog 了!