PHP 5.3:遠(yuǎn)大于開發(fā)者預(yù)期的重大版本
隨著PHP 5.3的發(fā)布,這個(gè)開源動(dòng)態(tài)語言迎來了近兩年來的最重要更新,新版PHP具有一長串新功能,性能得到大大改進(jìn)。
應(yīng)該說,PHP 5.3版是一個(gè)大于開發(fā)者預(yù)期的重大版本,加入了最初計(jì)劃在PHP 6中出現(xiàn)的一些功能。新版PHP將繼續(xù)扮演與Ruby、Java和.net等多種技術(shù)相競(jìng)爭(zhēng)的開源語言角色。
PHP核心開發(fā)人員Ilia Alshanetsky表示,“在新特點(diǎn)和功能方面,PHP 5.3可以說比任何人預(yù)想的都要更全面,這主要因?yàn)镻HP 6推遲發(fā)布的原因。因此盡管它發(fā)布的時(shí)間間隔有些長,但是我認(rèn)為這種等待是值得的,PHP 5.3是一個(gè)匯聚眾多開發(fā)者心血的優(yōu)秀作品?!?/P>
Alshanetsky表示,與多數(shù)重要版本PHP一樣,這個(gè)版本的PHP引入了眾多改進(jìn),可以讓開發(fā)者更簡(jiǎn)單的使用它。
PHP 5.3簡(jiǎn)化應(yīng)用程序部署的方式之一是它支持新命名空間,這是封裝類和其它PHP對(duì)象的方式之一。
Alshanetsky表示,對(duì)PHP開發(fā)者來說,命名空間可以帶來更清晰的代碼和更簡(jiǎn)單的名稱約定。
“目前,多數(shù)程序庫作者被迫在他們的類和函數(shù)名稱前加上庫名作為前綴,以避免命名沖突問題,有些時(shí)候這種做法會(huì)帶來相當(dāng)難用的名稱,”Alshanetsky表示?!霸摴δ苓€會(huì)簡(jiǎn)化單一應(yīng)用程序中多程序庫的利用,這些庫并不一定必須遵循詳細(xì)的命名約定,例如在其類/函數(shù)名稱前加前綴等。”
提速與MySQL的連接
PHP經(jīng)常被與開源數(shù)據(jù)庫MySQL配合使用來開發(fā)Web應(yīng)用,它們?cè)陂_源開發(fā)工具組合LAMP中是非常重要的一部分。在PHP 5.3中增加了一個(gè)名為MySQLInd的新功能,取代了以前的libmysql庫,用來連接PHP和MySQL,并擁有優(yōu)化MySQL性能和內(nèi)存利用率的可能。
Alshanetsky表示,“當(dāng)說到數(shù)據(jù)庫時(shí),多數(shù)情況下主要的瓶頸并非數(shù)據(jù)庫接口的速度,而是數(shù)據(jù)庫的操作。使用MySQLInd來取代標(biāo)準(zhǔn)的libmysql,肯定會(huì)帶來速度的改善,不過我不認(rèn)為它會(huì)讓所有應(yīng)用都提高運(yùn)行速度。換句話說,使用高度調(diào)優(yōu)MySQL應(yīng)用的人將會(huì)看到新版PHP中更快速、更專用的接口所帶來的速度提升。”
總體來說,Alshanetsky預(yù)計(jì),通過從目前的PHP5.2轉(zhuǎn)向PHP 5.3,用戶應(yīng)該會(huì)看到多數(shù)工作流程的性能將提高5%到15%,某些特定工作流程甚至可能看到更高的收益。
E_DEPRECATED標(biāo)記將被廢棄的功能
盡管增加新功能是任何新技術(shù)發(fā)布的一個(gè)關(guān)鍵部分,除此之外PHP 5.3還有自己的特別之處——它明確了哪個(gè)功能可能會(huì)被取消。
該版本提供了一個(gè)名為E_DEPRECATED的新錯(cuò)誤代碼,讓開發(fā)者知道哪些特定功能即將從該語言中消失。
Alshanetsky表示,“以前我們?cè)龅竭^這樣的問題,我們沒有一個(gè)明確的錯(cuò)誤代碼來表示已經(jīng)不支持的功能,人們很難在錯(cuò)誤代碼層次上來判斷什么功能可能最后被移除?!?/P>
通過創(chuàng)建一個(gè)專用錯(cuò)誤代碼來解決這個(gè)問題,開發(fā)者可以通過使用PHP的錯(cuò)誤記錄工具來識(shí)別自己代碼庫中的哪一部分還在使用將被移除的功能,因此開發(fā)者可以進(jìn)行相應(yīng)的調(diào)整。
據(jù)Alshanetsky表示,PHP開發(fā)團(tuán)隊(duì)存在一個(gè)共識(shí),目前被標(biāo)記為E_DEPRECATED的功能將在PHP 6中移除。
【相關(guān)文章】