PHP依賴管理篇:Composer和PEAR
如今有大量的PHP函數(shù)庫、框架和組件可供選擇,一個(gè)項(xiàng)目中可能會(huì)使用其中的若干——這就是項(xiàng)目的依賴。到目前為止,PHP還沒有有效的 項(xiàng)目依賴管理方案。即使你手工的管理它們,你還不得不處理它們的自動(dòng)加載問題。
目前主要有兩個(gè)PHP包管理系統(tǒng):Composer和PEAR,哪個(gè)適合你呢?答案是兩個(gè)都需要。
管理單個(gè)項(xiàng)目的依賴時(shí)使用Composer管理整個(gè)系統(tǒng)的PHP依賴時(shí)使用PEAR通常情況下,Composer包只在你項(xiàng)目中明確指定時(shí)才可用,而PEAR包在所有的PHP項(xiàng)目中可用。盡管PEAR聽起來似乎更簡單,但是根據(jù)每個(gè) 項(xiàng)目制定方案可能更合適。
Composer and PackagistComposer是一個(gè)出色的PHP依賴管理器,把項(xiàng)目的依賴列在composer.json文件中,然后通過一些簡單的命令,Composer就會(huì) 自動(dòng)的幫你下載這些依賴,并配置好自動(dòng)加載路徑。
現(xiàn)在已經(jīng)有很多PHP庫支持Composer,可以在項(xiàng)目中使用它們,具體列表可以點(diǎn)擊查看,這是官方支持的Composer兼容的PHP庫。
如何安裝ComposerComposer可以安裝在本地(在當(dāng)前工作目錄,不推薦這種方式),也可以安裝在系統(tǒng)中(如/usr/local/bin)。假設(shè)你要在本地安裝,在 項(xiàng)目的根目錄執(zhí)行:
curl -s https://getcomposer.org/installer | php
它會(huì)下載composer.phar(PHP二進(jìn)制文檔),然后你就可以用php運(yùn)行它來完成項(xiàng)目依賴的管理。?請(qǐng)注意:如果 你通過管道直接把下載的代碼傳給PHP解釋器,請(qǐng)先在線閱讀代碼以確保該代碼是安全的。
如何手動(dòng)安裝Composer手動(dòng)安裝composer有點(diǎn)麻煩,不過很多開發(fā)者可能更喜歡這種安裝方式。使用交互式安裝程序,它會(huì)檢查你安裝的PHP:
PHP版本滿足要求.phar文件可以正確執(zhí)行 - 相關(guān)目錄的權(quán)限設(shè)置正確 - 沒有加載某些不兼容的擴(kuò)展相應(yīng)的php.ini設(shè)置正確而手動(dòng)安裝則需要你自己做這些事情,你必須自己權(quán)衡利弊,以決定是否手動(dòng)安裝。下面是手動(dòng)獲取Composer的方法:
curl -s https://getcomposer.org/composer.phar -o $HOME/local/bin/composerchmod +x $HOME/local/bin/composer
目錄$HOME/local/bin(或你自己選擇其它目錄)應(yīng)該在你的$PATH環(huán)境變量中,從而可以直接運(yùn)行composer命令。
這樣文檔中描述的運(yùn)行Composer的命令php composer.phar install,就可以用如下命令替代:
composer install如何定義和安裝依賴
首先,在composer.phar所在目錄創(chuàng)建文件composer.json,下面是一個(gè)依賴Twig例子:
{ 'require': {'twig/twig': '1.8.*' }}
第二步:在項(xiàng)目根目錄運(yùn)行:
php composer.phar install
這會(huì)在vendors/下載和安裝項(xiàng)目依賴。最后在應(yīng)用的PHP入口文件添加下面代碼,告訴PHP使用Composer自動(dòng)加載器加載項(xiàng)目的依賴庫:
<?phprequire ’vendor/autoload.php’;
現(xiàn)在你就可以使用項(xiàng)目依賴的庫了,它們會(huì)在需要的時(shí)候自動(dòng)加載。
學(xué)習(xí)ComposerPEAR另外一個(gè)常用的包管理器就是很多PHP開發(fā)者喜歡的PEAR,它的運(yùn)行方式和Composer有些類似,但是也有一些區(qū)別.
PEAR requires each package to have a specific structure, which means that the author of the package must prepare it for usage with PEAR. Using a project which was not prepared to work with PEAR is not possible.
PEAR installs packages globally, which means after installing them once they are available to all projects on that server. This can be good if many projects rely on the same package with the same version but might lead to problems if version conflicts between two projects arise.
How to install PEARYou can install PEAR by downloading the phar installer and executing it. The PEAR documentation has detailed?install instructions?for every operating system.
If you are using Linux, you can also have a look at your distribution package manager. Debian and Ubuntu for example have a apt?php-pearpackage.
How to install a packageIf the package is listed on the?PEAR packages list, you can install it by specifying the official name:
pear install foo
If the package is hosted on another channel, you need to?discover?the channel first and also specify it when installing. See the?Using channel docsfor more information on this topic.
Learn about PEAR相關(guān)文章:
1. 利用promise及參數(shù)解構(gòu)封裝ajax請(qǐng)求的方法2. Nginx+php配置文件及原理解析3. windows服務(wù)器使用IIS時(shí)thinkphp搜索中文無效問題4. .NET中l(wèi)ambda表達(dá)式合并問題及解決方法5. JSP數(shù)據(jù)交互實(shí)現(xiàn)過程解析6. 淺談python出錯(cuò)時(shí)traceback的解讀7. python matplotlib:plt.scatter() 大小和顏色參數(shù)詳解8. Ajax實(shí)現(xiàn)表格中信息不刷新頁面進(jìn)行更新數(shù)據(jù)9. Python importlib動(dòng)態(tài)導(dǎo)入模塊實(shí)現(xiàn)代碼10. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向
