通過四種方式讓PHP編碼變得更輕松
譯文【51CTO精選譯文】盡管已經(jīng)目前PHP語言已經(jīng)建立起屬于自己的軟件文化,但要找到它令人抓狂的弊端也絕對不是難事。我們曾經(jīng)在之前的文章中列出過該語言最讓開發(fā)人員難以接受的十二大糟糕特性。
不過在過去幾年當(dāng)中,PHP已經(jīng)發(fā)生了一系列變動——從語言本身到相關(guān)生態(tài)系統(tǒng)再到對開發(fā)者社區(qū)的支持——這些確實值得我們加以關(guān)注。盡管已經(jīng)拋棄了PHP并投身于Python或者Ruby的用戶們不太可能在短時間內(nèi)被吸引回來,但已經(jīng)有跡象表明確實有人在不遺余力地對PHP加以完善。下面我們就一同來了解PHP語言迎來的四大顯著改進(jìn)。
1. 軟件包與依賴性管理
直到不久之前,對PHP軟件包進(jìn)行管理的惟一方式還只能是使用PEAR(即PHP擴展與應(yīng)用程序庫)。不過PEAR在使用難度上長期受到開發(fā)人員們的抨擊,其中充斥著大量已經(jīng)過時以及未受維護(hù)的軟件組件。大多數(shù)更為流行的PHP框架都擁有自己的獨特軟件包管理系統(tǒng)——例如CakePHP的Bakery、CodeIgniter的Sparks等——不過它們很少或者幾乎無法將PHP作為整體加以打理。
這方面***的變化源自Composer,它吸取到了Node.js的NPM系統(tǒng)與Ruby的Bundler當(dāng)中的優(yōu)秀要素。它會以項目作為基礎(chǔ)對軟件包進(jìn)行追蹤,這樣一來開發(fā)人員就能更輕松地弄清楚特定項目需要使用哪些軟件包并以自動化方式對其加以安裝。它與名為Packagist的庫協(xié)同運作,該庫中已經(jīng)包含大量常用PHP應(yīng)用、框架以及組件。
2. Hack/HHVM
PHP獲得的另外兩大最為顯著的變化源自PHP自身體系之外——更準(zhǔn)確地說,來自Facebook:Hack語言與HHVM(即HipHop虛擬機)。前者在繼承了PHP衣缽的同時添加了一系列PHP默認(rèn)狀態(tài)下無法實現(xiàn)的功能,例如靜態(tài)對象類型。后者則能夠?qū)HP代碼編譯為C++代碼從而加快其執(zhí)行速度,最終帶來將近十倍于原本的性能水平。二者都屬于推出時間相對較短的創(chuàng)新成果,因此它們對于PHP在長遠(yuǎn)角度的影響仍然有待觀察。不過它們至少顯示出主流Web服務(wù)巨頭確實對PHP顯示出濃厚的興趣與認(rèn)真的對待態(tài)度,并因此將其作為自身選定的平臺方案。
3. PHP-FIG
雖然聽起來像是種解悶的小零食(Fig意為無花果),但這實際上是一個PHP框架程序組,其中匯總了PHP開發(fā)者們所打造的用于構(gòu)建開發(fā)標(biāo)準(zhǔn)(包括如何以一致性方式開發(fā)自己的項目)的技術(shù)成果。來自CakePHP、Drupal、Joomla以及SugarCRM等項目的技術(shù)人員們已經(jīng)正式加入該團體,并為多項日常工作提供了標(biāo)準(zhǔn)化機制——其中包括編碼風(fēng)格指南、庫登錄接口以及如何處理類的自動載入等等。
這個小組可以說是完全自愿加入而且并非正式機構(gòu),不過他們希望“隨著時間的推移,其涵蓋范圍能夠擴展到更為廣泛的項目區(qū)劃當(dāng)中。”
4. Phpng項目
為PHP語言本體開發(fā)換代版本則是另一個為該語言帶來全面提升的優(yōu)秀思路。這個被稱為Phpng的PHP開發(fā)分支當(dāng)中包含諸多改進(jìn),旨在明確特定操作需要使用多少內(nèi)存容量以及完成特定運行效果需要使用多少條機器指令。其中大部分工作都受到PHP供應(yīng)商Zend技術(shù)公司的贊助,后者的PHP引擎被廣泛用于該語言的商用安裝方案當(dāng)中。
當(dāng)然,其中大部分改進(jìn)僅僅是為了提升其性能表現(xiàn)而并非改變PHP語言那備受譏諷的語法特性——遺憾的是,這些問題目前仍沒有得到解決的跡象。也許PHP的下一次重大革新不會像Hack那樣具備顛覆性效果,而更像是JavaScript擴展方案那種能夠?qū)崿F(xiàn)原生編譯效果的轉(zhuǎn)譯語言。
英文:http://www.infoworld.com/t/php-web/4-ways-php-coding-getting-less-painful-245435


























