[TOC]
### 簡介
Composer 是 PHP 的一個依賴管理工具。它允許你申明項目所依賴的代碼庫,它會在你的項目中為你安裝他們。
### 系統要求
運行 Composer 需要 PHP 5.3.2+ 以上版本。一些敏感的 PHP 設置和編譯標志也是必須的,但對于任何不兼容項安裝程序都會拋出警告。
我們將從包的來源直接安裝,而不是簡單的下載 zip 文件,你需要 git 、 svn 或者 hg ,這取決于你載入的包所使用的版本管理系統。
Composer 是多平臺的,我們努力使它在 Windows 、 Linux 以及 OSX 平臺上運行的同樣出色。
### 安裝 - *nix
下載 Composer 的可執行文件
#### 局部安裝
要真正獲取 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。
### 安裝 - Windows
#### 使用安裝程序
這是將 Composer 安裝在你機器上的最簡單的方法。
下載并且運行 [Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe),它將安裝最新版本的 Composer ,并設置好系統的環境變量,因此你可以在任何目錄下直接使用 composer 命令。
### 使用 Composer
#### 聲明依賴關系
比方說,你正在創建一個項目,你需要一個庫來做日志記錄。你決定使用 `monolog`。為了將它添加到你的項目中,你所需要做的就是創建一個 composer.json 文件,其中描述了項目的依賴關系。
~~~
{
"require": {
"monolog/monolog": "1.2.*"
}
}
~~~
現在我們將使用 Composer 來安裝項目的依賴。如果在當前目錄下沒有一個 composer.json 文件,請查看[基本用法](http://docs.phpcomposer.com/01-basic-usage.html)章節。
#### 安裝依賴包
要解決和下載依賴,請執行 install 命令:
~~~
php composer.phar install
~~~
如果你進行了全局安裝,并且沒有 phar 文件在當前目錄,請使用下面的命令代替:
~~~
composer install
~~~
接著前面的例子,這將會找到 monolog/monolog 的最新版本,并將它下載到 vendor 目錄。 這是一個慣例把第三方的代碼到一個指定的目錄 vendor。如果是 monolog 將會創建 vendor/monolog/monolog 目錄。
小技巧: 如果你正在使用Git來管理你的項目, 你可能要添加 vendor 到你的 .gitignore 文件中。 你不會希望將所有的代碼都添加到你的版本庫中。
另一件事是 install 命令將創建一個 composer.lock 文件到你項目的根目錄中。
#### 使用composer.lock - 鎖文件
在安裝依賴后,Composer 將把安裝時確切的版本號列表寫入` composer.lock` 文件。這將鎖定改項目的特定版本。
請提交你應用程序的 `composer.lock` (包括 `composer.json`)到你的版本庫中
這是非常重要的,因為 install 命令將會檢查鎖文件是否存在,如果存在,它將下載指定的版本(忽略 composer.json 文件中的定義)。
這意味著,任何人建立項目都將下載與指定版本完全相同的依賴。你的持續集成服務器、生產環境、你團隊中的其他開發人員、每件事、每個人都使用相同的依賴,從而減輕潛在的錯誤對部署的影響。即使你獨自開發項目,在六個月內重新安裝項目時,你也可以放心的繼續工作,即使從那時起你的依賴已經發布了許多新的版本。
如果不存在 `composer.lock` 文件,Composer 將讀取 `composer.json` 并創建鎖文件。
這意味著如果你的依賴更新了新的版本,你將不會獲得任何更新。
#### 更新你的依賴版本
此時要更新你的依賴版本請使用 update 命令。這將獲取最新匹配的版本(根據你的 composer.json 文件)并將新版本更新進鎖文件。
~~~
php composer.phar update
~~~
如果只想安裝或更新一個依賴,你可以白名單它們:
~~~
php composer.phar update monolog/monolog [...]
~~~
注意: 對于庫,并不一定建議提交鎖文件 請參考:庫的鎖文件.