Composer 是一個?**杰出**?的依賴管理器。在?`composer.json`?文件中列出你項目所需的依賴包,加上一點簡單的命令,Composer 將會自動幫你下載并設置你的項目依賴。Composer 有點類似于 Node.js 世界里的 NPM,或者 Ruby 世界里的 Bundler。
現在已經有許多 PHP 第三方包已兼容 Composer,隨時可以在你的項目中使用。這些「packages(包)」都已列在?[Packagist](http://packagist.org/),這是一個官方的 Composer 兼容包倉庫。
### 如何安裝 Composer
最安全的下載方法就是使用?[官方的教程](https://getcomposer.org/download/)。 此方法會驗證安裝器是否安全,是否被修改。
安裝器安裝 Composer 的應用范圍為?*本地*,也就是在你當前項目文件夾。
我們推薦你?*全局*?安裝,即把可執行文件復制到?`/usr/local/bin`?路徑中:
~~~
mv composer.phar /usr/local/bin/composer
~~~
**注意:**?以上命令如果失敗,請嘗試使用`sudo`?來增加權限。
*本地*?使用 Composer 的話,你可以運行?`php composer.phar`?,全局的話是:`composer`。
#### Windows環境下安裝
對于Windows 的用戶而言最簡單的獲取及執行方法就是使用?[ComposerSetup](https://getcomposer.org/Composer-Setup.exe)?安裝程序,它會執行一個全局安裝并設置你的?`$PATH`,所以你在任意目錄下在命令行中使用?`composer`。
### 如何手動安裝 Composer
手動安裝 Composer 是一個高端的技術。僅管如此還是有許多開發者有各種原因喜歡使用這種交互式的應用程序安裝 Composer。在安裝前請先確認你的 PHP 安裝項目如下:
* 正在使用一個滿足條件的 PHP 版本
* `.phar`?文件可以正確的被執行
* 相關的目錄有足夠的權限
* 相關有問題的擴展沒有被載入
* 相關的?`php.ini`?設置已完成
由于手動安裝沒有執行這些檢查,你必須自已衡量決定是否值得做這些事,以下是如何手動安裝 Composer :
~~~
curl -s https://getcomposer.org/composer.phar -o $HOME/local/bin/composer
chmod +x $HOME/local/bin/composer
~~~
路徑?`$HOME/local/bin`?(或是你選擇的路徑) 應該在你的?`$PATH`?環境變量中。這將會影響?`composer`?這個命令是否可用.
當你遇到文檔指出執行 Composer 的命令是?`php composer.phar install`時,你可以使用下面命令替代:
~~~
composer install
~~~
本章節會假設你已經安裝了全局的 Composer。
### 如何設置及安裝依賴
Composer 會通過一個?`composer.json`?文件持續的追蹤你的項目依賴。 如果你喜歡,你可以手動管理這個文件,或是使用 Composer 自己管理。`composer require`?這個指令會增加一個項目依賴,如果你還沒有?`composer.json`?文件, 將會創建一個。這里有個例子為你的項目加入?[Twig](http://twig.sensiolabs.org/)?依賴。
~~~
composer require twig/twig:~1.8
~~~
另外?`composer init`?命令將會引導你創建一個完整的?`composer.json`?文件到你的項目之中。無論你使用哪種方式,一旦你創建了?`composer.json`?文件,你可以告訴 Composer 去下載及安裝你的依賴到?`vendor/`?目錄中。這命令也適用于你已經下載并已經提供了一個?`composer.json`?的項目:
~~~
composer install
~~~
接下來,添加這一行到你應用的主要 PHP 文件中,這將會告訴 PHP 為你的項目依賴使用 Composer 的自動加載器。
~~~
<?php
require 'vendor/autoload.php';
~~~
現在你可以使用你項目中的依賴,且它們會在需要時自動完成加載。
### 更新你的依賴
Composer 會建立一個?`composer.lock`?文件,在你第一次執行?`php composer install`?時,存放下載的每個依賴包精確的版本編號。假如你要分享你的項目給其他開發者,并且?`composer.lock`?文件也在你分享的文件之中的話。 當他們執行?`php composer.phar install`?這個命令時,他們將會得到與你一樣的依賴版本。 當你要更新你的依賴時請執行?`php composer update`。請不要在部署代碼的時候使用?`composer update`,只能使用?`composer install`?命令,否則你會發現你在生產環境中用的是不同的擴展包依賴版本。
當你需要靈活的定義你所需要的依賴版本時,這是最有用。 舉例來說需要一個版本為 ~1.8 時,意味著 “任何大于 1.8.0 ,但小于 2.0.x-dev 的版本”。你也可以使用通配符?`*`?在?`1.8.*`?之中。現在Composer在`composer update`?時將升級你的所有依賴到你限制的最新版本。
### 更新通知
要接收關于新版本的更新通知。你可以注冊?[VersionEye](https://www.versioneye.com/),這個 web 服務可以監控你的 Github 及 BitBucket 帳號中的?`composer.json`?文件,并且當包有新更新時會發送郵件給你。
### 檢查你的依賴安全問題
[Security Advisories Checker](https://security.sensiolabs.org/)?是一個 web 服務和一個命令行工具,二者都會仔細檢查你的?`composer.lock`?文件,并且告訴你任何你需要更新的依賴。
### 處理 Composer 全局依賴
Composer 也可以處理全局依賴和他們的二進制文件。用法很直接,你所要做的就是在命令前加上`global`前綴。如果你想安裝 PHPUnit 并使它全局可用,你可以運行下面的命令:
~~~
composer global require phpunit/phpunit
~~~
這將會創建一個?`~/.composer`?目錄存放全局依賴,要讓已安裝依賴的二進制命令隨處可用,你需要添加?`~/.composer/vendor/bin`?目錄到你的?`$PATH`?變量。
* [其他學習 Composer 相關資源](http://getcomposer.org/doc/00-intro.md)
- 歡迎
- 入門指南
- 使用當前穩定版本
- 內置的WEB服務器
- Mac安裝
- Windows安裝
- 代碼風格指南
- 語言亮點
- 編程范式
- 命名空間
- PHP標準庫
- 命令行接口
- Xdebug
- 依賴管理
- Composer 與 Packagist
- PEAR
- 開發實踐
- 基礎知識
- 日期和時間
- 設計模式
- 使用UTF8編碼
- 依賴注入
- 基本概念
- 復雜的問題
- 容器
- 延伸閱讀
- 數據庫
- MYSQL 擴展
- PDO 擴展
- 數據庫交互
- 數據庫抽象層
- 使用模板
- 好處
- 原生PHP模板
- 編譯模板
- 延伸閱讀
- 錯誤與異常
- 錯誤
- 異常
- 安全
- Web應用程序安全
- 密碼哈希
- 數據過濾
- 配置文件
- 注冊全局變量
- 錯誤報告
- 測試
- 測試驅動開發
- 行為驅動開發
- 其他測試工具
- 服務器與部署
- Platform as a Service (PaaS)
- 虛擬或專用服務器
- 共享服務器
- 構建及部署應用
- 虛擬化
- Vagrant
- Docker
- 緩存
- Opcode緩存
- 對象緩存
- 文檔撰寫
- 資源
- 社區
- Credits