PHP依賴管理篇:Composer和PEAR
如今有大量的PHP函數(shù)庫、框架和組件可供選擇,一個(gè)項(xiàng)目中可能會使用其中的若干——這就是項(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就會 自動(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
它會下載composer.phar(PHP二進(jìn)制文檔),然后你就可以用php運(yùn)行它來完成項(xiàng)目依賴的管理。?請注意:如果 你通過管道直接把下載的代碼傳給PHP解釋器,請先在線閱讀代碼以確保該代碼是安全的。
如何手動(dòng)安裝Composer手動(dòng)安裝composer有點(diǎn)麻煩,不過很多開發(fā)者可能更喜歡這種安裝方式。使用交互式安裝程序,它會檢查你安裝的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
這會在vendors/下載和安裝項(xiàng)目依賴。最后在應(yīng)用的PHP入口文件添加下面代碼,告訴PHP使用Composer自動(dòng)加載器加載項(xiàng)目的依賴庫:
<?phprequire ’vendor/autoload.php’;
現(xiàn)在你就可以使用項(xiàng)目依賴的庫了,它們會在需要的時(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. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究2. 三個(gè)不常見的 HTML5 實(shí)用新特性簡介3. Angular獲取ngIf渲染的Dom元素示例4. IIS+PHP添加對webp格式圖像的支持配置方法5. ASP調(diào)用WebService轉(zhuǎn)化成JSON數(shù)據(jù),附j(luò)son.min.asp6. 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁7. 使用.net core 自帶DI框架實(shí)現(xiàn)延遲加載功能8. Warning: require(): open_basedir restriction in effect,目錄配置open_basedir報(bào)錯(cuò)問題分析9. php測試程序運(yùn)行速度和頁面執(zhí)行速度的代碼10. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析
