PHP未來(lái)的一些可能
德國(guó)開(kāi)放源碼軟件開(kāi)發(fā)者Frank Karlit-schek主導(dǎo)的ownCloud項(xiàng)目,是目前采用PHP編寫(xiě)的最大型開(kāi)源項(xiàng)目之一。他在談及為何選擇PHP時(shí),提到以下幾點(diǎn)。
普遍性:ownCloud的目的是讓所有人來(lái)托管自己的云服務(wù)器。而PHP目前廣泛用于Web服務(wù)器、操作系統(tǒng),平臺(tái)的優(yōu)勢(shì)使得用戶能輕松地進(jìn)行部署。
通用性:作為腳本型語(yǔ)言,一個(gè)服務(wù)器tar文件可以運(yùn)行于所有的平臺(tái)而無(wú)須復(fù)雜的額外編譯。
門(mén)檻低:大多數(shù)程序員對(duì)PHP都不陌生,即使是零基礎(chǔ)的用戶,學(xué)習(xí)PHP也是相對(duì)輕松容易。
輕巧強(qiáng)大:只要使用得當(dāng),PHP運(yùn)行速度快,功能強(qiáng)大。維基百科、Facebook、WordPress等大型Web應(yīng)用都是用PHP編寫(xiě)的。
資源豐富:PHP擁有龐大的開(kāi)發(fā)生態(tài)系統(tǒng),包括類(lèi)庫(kù)、組件、連接器/驅(qū)動(dòng)等。使用它就如同站在了巨人的肩膀上。
但縱然PHP有這些亮麗的優(yōu)點(diǎn),F(xiàn)rank也指出它有不足之處。
安全性:作為20世紀(jì)90年代的產(chǎn)物,它在安全性方面的表現(xiàn)不能令人放心,畢竟那個(gè)時(shí)候人們的安全意識(shí)還是比較天真幼稚的。
編譯時(shí)間/運(yùn)行時(shí)配置:調(diào)用./configure腳本來(lái)隨心所欲地按照自己意愿編譯PHP聽(tīng)起來(lái)很有趣,但如果進(jìn)行換位思考,我們?cè)诰S護(hù)時(shí)要逐字逐句地查看別人的腳本配置那就不見(jiàn)得那么美好了。
矛盾的函數(shù)和類(lèi)命名:一時(shí)是下劃線,一時(shí)是駝峰命名;某些特性可以是過(guò)程風(fēng)格或是面向?qū)ο蠼涌陲L(fēng)格,甚或兼而有之。
靜態(tài)類(lèi)型:PHP在靜態(tài)類(lèi)型上可以做得更好。
最近Apple新推出的開(kāi)發(fā)語(yǔ)言Swift觸動(dòng)了Frank,語(yǔ)言在更新?lián)Q代時(shí)是需要保持向下兼容還是完全創(chuàng)新?而如果是類(lèi)似Perl和Python那樣無(wú)法前后兼容,最終分道揚(yáng)鑣的局面,是大家不想看到的。對(duì)此,F(xiàn)rank就PHP的未來(lái)提出了自己的想法。
安全性:摒棄_Get、_Post、_SERVER,引入一個(gè)合適的API來(lái)對(duì)數(shù)據(jù)輸入進(jìn)行篩選。
數(shù)據(jù)庫(kù):PHP的數(shù)據(jù)庫(kù)支援API真的太豐富了。但某些API已經(jīng)非常老舊甚至過(guò)時(shí)了。Frank建議對(duì)此進(jìn)行標(biāo)準(zhǔn)化,最終形成唯一的面向?qū)ο蠼涌诰涂梢粤恕DO是他做出的第一步嘗試。
32位/64位:在32位或64位運(yùn)行PHP時(shí),人們多少會(huì)發(fā)現(xiàn)特別是整型數(shù)據(jù)的運(yùn)行差別。消除不同類(lèi)型系統(tǒng)的運(yùn)行差別是非常必要的。
剔除save_mode、open_basedir等傳統(tǒng)概念,使用unicode字符。
移除大部分有關(guān)編譯和運(yùn)行時(shí)配置的選項(xiàng):所有下一代PHP的運(yùn)行時(shí)環(huán)境應(yīng)該是盡可能統(tǒng)一和穩(wěn)定的。
類(lèi)型:引入可選靜態(tài)類(lèi)型的做法必定是非常令人激動(dòng)的。這樣的話一個(gè)變量可以定義為布爾或整形。如果錯(cuò)誤地使用了變量,會(huì)拋出一個(gè)異常。
本文作者Frank Karlitschek系ownCloud發(fā)起人,自由軟件開(kāi)發(fā)者。
原文鏈接:http://karlitschek.de/2014/10/a-possible-future-for-php/ via:csdn
相關(guān)文章:
1. jsp+servlet實(shí)現(xiàn)猜數(shù)字游戲2. 使用FormData進(jìn)行Ajax請(qǐng)求上傳文件的實(shí)例代碼3. JavaScript實(shí)現(xiàn)組件化和模塊化方法詳解4. PHP循環(huán)與分支知識(shí)點(diǎn)梳理5. 詳解JS前端使用迭代器和生成器原理及示例6. ASP編碼必備的8條原則7. XML入門(mén)的常見(jiàn)問(wèn)題(二)8. Javaweb工程運(yùn)行報(bào)錯(cuò)HTTP Status 404解決辦法9. 詳解php如何合并身份證正反面圖片為一張圖片10. 得到XML文檔大小的方法
