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