自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

通過(guò)四種方式讓PHP編碼變得更輕松

譯文
開(kāi)發(fā) 后端 前端
盡管已經(jīng)擁有相當(dāng)廣泛的普及程度,PHP語(yǔ)言的性能表現(xiàn)、軟件包管理以及社區(qū)關(guān)系仍然飽受用戶(hù)們的詬病。

 

【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

責(zé)任編輯:林師授 來(lái)源: 51CTO
相關(guān)推薦

2012-09-24 10:14:46

Linux系統(tǒng)管理

2024-01-10 21:59:30

MySQLZEROFILL數(shù)據(jù)庫(kù)

2020-04-16 20:20:00

人工智能AI

2023-06-29 15:08:21

JavaScrip開(kāi)發(fā)

2015-10-28 14:03:32

數(shù)據(jù)遷移數(shù)據(jù)

2014-12-25 09:41:15

Android加載方式

2021-12-22 09:34:01

Golagn配置方式

2013-10-17 09:25:52

2010-07-28 13:54:42

Flex數(shù)據(jù)綁定

2022-03-25 14:47:24

Javascript數(shù)據(jù)類(lèi)型開(kāi)發(fā)

2023-05-22 08:03:28

JavaScrip枚舉定義

2017-04-17 19:31:03

Android多線程

2013-06-14 15:24:57

Android開(kāi)發(fā)移動(dòng)開(kāi)發(fā)數(shù)據(jù)存儲(chǔ)方式

2010-08-05 09:33:08

Flex頁(yè)面跳轉(zhuǎn)

2020-06-12 08:28:29

JavaScript開(kāi)發(fā)技術(shù)

2019-12-23 10:07:45

邊緣計(jì)算5G云計(jì)算

2018-09-20 18:23:49

人工智能AI

2015-04-02 16:54:52

災(zāi)難恢復(fù)VDI災(zāi)難恢復(fù)

2015-04-13 11:39:26

VDI災(zāi)難恢復(fù)

2021-07-14 10:31:15

JavaScript開(kāi)發(fā) 技巧
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)