?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
Composer 是一個 杰出 的依賴管理器。在 composer.json 文件中列出你項目所需的依賴包,加上一點簡單的命令,Composer 將會自動幫你下載依賴包并設置自動加載。Composer 可以類比為 node.js 世界的 NPM 或 Ruby 世界的 Bundler。
現(xiàn)在已經(jīng)有許多 PHP 第三方包已兼容 Composer,隨時可以在你的項目中使用。這些 “包(package)” 都已列在 Packagist 上了,這是一個官方的 Composer 兼容包倉庫。
如何安裝 Composer
按照官方指導 下載 Composer 的最安全的方式。 這種方式在安裝過程中會檢驗安裝腳本不被損壞或篡改。 安裝腳本默認是將 Composer 安裝到當前項目的 本地 目錄下面。
我們建議將 Composer 安裝到 全局 環(huán)境中(例如復制到 /usr/local/bin 目錄),如下:
mv composer.phar /usr/local/bin/composer
注意: 如果上述過程失敗是由于權限的原因,請重新執(zhí)行 mv 并在此指令前面添加 sudo。
運行本地安裝的 Composer 使用 php composer.phar 命令;運行全局安裝的 Composer 直接使用 composer 命令。
Windows環(huán)境下安裝
對于Windows 的用戶而言最簡單的獲取及執(zhí)行方法就是使用 ComposerSetup安裝程序,它會執(zhí)行一個全局安裝并設置你的 $PATH,所以你在任意目錄下在命令行中使用 composer。
如何手動安裝 Composer
手動安裝 Composer 是一個復雜的技術活兒,僅管如此還是有許多開發(fā)者有各種原因喜歡使用這種交互式的應用程序安裝 Composer。在安裝前請先確認你的PHP安裝項目如下:
正在使用一個滿足條件的 PHP 版本
.phar 文件可以正確的被執(zhí)行
相關的目錄有足夠的權限
相關有問題的擴展沒有被載入
相關的 php.ini 設置已完成
由于手動安裝沒有執(zhí)行這些檢查,你必須自已衡量決定是否值得做這些事,以下是如何手動安裝 Composer :
curl -s https://getcomposer.org/composer.phar -o $HOME/local/bin/composer chmod +x $HOME/local/bin/composer
路徑 $HOME/local/bin (或是你選擇的路徑) 應該在你的 $PATH 環(huán)境變量中。這將會影響 composer 這個命令是否可用.
當你遇到文檔指出執(zhí)行 Composer 的命令是 php composer.phar install時,你可以使用下面命令替代:
composer install
本章節(jié)會假設你已經(jīng)安裝了全局的 Composer。
如何設置及安裝依賴
Composer 會通過一個 composer.json 文件持續(xù)的追蹤你的項目依賴。 如果你喜歡,你可以手動管理這個文件,或是使用 Composer 自己管理。composer require 這個指令會增加一個項目依賴,如果你還沒有 composer.json 文件, 將會創(chuàng)建一個。這里有個例子為你的項目加入 Twig 依賴。
composer require twig/twig:~1.8
另外,composer init 命令將會引導你創(chuàng)建一個完整的 composer.json 文件到你的項目之中。無論你使用哪種方式,一旦你創(chuàng)建了 composer.json 文件,你可以告訴 Composer 去下載及安裝你的依賴到 vendor/ 目錄中。此命令也適用于你所下載的已經(jīng)帶有 composer.json 文件的項目:
composer install
接下來,添加這一行到你應用的主要 PHP 文件中,這將會告訴 PHP 為你的項目依賴使用 Composer 的自動加載器。
<?php require 'vendor/autoload.php';
現(xiàn)在你可以使用你項目中的依賴,且它們會在需要時自動完成加載。
更新你的依賴
Composer 會建立一個 composer.lock 文件,在你第一次執(zhí)行 composer install 時,保存下載的每個依賴包的準確的版本號。假如你要分享你的項目給其他開發(fā)者,并且 composer.lock 文件也在你分享的文件之中的話。 當他們執(zhí)行 composer install 這個命令時,他們將會得到與你一樣的依賴版本。當你要更新你的依賴時請執(zhí)行 composer update。部署項目時只使用 composer install而不要使用 composer update 命令,否則再生產(chǎn)環(huán)境上安裝的依賴和你預期的不一致。
當你需要靈活的定義你所需要的依賴版本時,這是最有用。 例如,~1.8 表示 “任何大于 1.8.0,但小于 2.0.x-dev 的版本”。你也可以使用通配符 * 在 1.8.* 之中?,F(xiàn)在 Composer 在執(zhí)行 composer update 時將升級你的所有依賴到你限制的最新版本。
更新通知
要接收關于新版本的更新通知。你可以注冊 VersionEye,這個 web 服務可以監(jiān)控你的 Github 及 BitBucket 帳號中的 composer.json 文件,并且當包有新更新時會發(fā)送郵件給你。
檢查你的依賴安全問題
Security Advisories Checker 是一個 web 服務和一個命令行工具,二者都會仔細檢查你的 composer.lock 文件,并且告訴你任何你需要更新的依賴。
處理 Composer 全局依賴
Composer 也可以處理全局依賴和他們的二進制文件。用法很直接,你所要做的就是在命令前加上 global 前綴。如果你想安裝 PHPUnit 并使它全局可用,你可以運行下面的命令:
composer global require phpunit/phpunit
這將會創(chuàng)建一個 ~/.composer 目錄存放全局依賴,要讓已安裝依賴的二進制命令隨處可用,你需要添加 ~/.composer/vendor/bin 目錄到你的 $PATH 變量。