《談?wù)劥蠹覍HP框架的各種誤解》要點:
本文介紹了談?wù)劥蠹覍HP框架的各種誤解,希望對您有用。如果有疑問,可以聯(lián)系我們。
有人認(rèn)為,PHP是每次哀求都要初始化資源,這個開銷非常大.由此,PHP不適合使用開發(fā)框架.
對于PHP,確實沒有類的持久化,使得每次哀求都要初始化資源,但是,這并不是開銷的主要問題所在.最主要的問題,是在于開發(fā)PHP框架的人,對PHP本身的特性了解多少.最簡單的,MVC需要檢測UA,如果使用PHP自帶的get_browser函數(shù),那肯定是死定了.因為,使用上的方便與簡單,導(dǎo)致的是性能的開銷.
認(rèn)為不可使用PHP開發(fā)框架的,還有的觀點是:由于需要每次哀求的時候初始化整個框架.其實,這也是一種誤解.如果好好看看PHP源碼,就會了解,PHP是按哀求加載需要運行的文件,并不是整個框架.所以,對于框架本身,哪一種框架內(nèi)核代碼時越小,性能越好.
還有觀點:由于PHP這種每哀求初始化資源的機(jī)制,也造成了PHP添加跨哀求的高級特性相當(dāng)困難.其實,跨哀求本身,要看在哪一個層面.PHP提供了各類加速的緩存機(jī)制.雖然PHP的類是由于目前序列化函數(shù)仍有限制,不能持久化,但數(shù)據(jù)緩存對PHP的加速是相當(dāng)快的.所以,認(rèn)為由于這一限制,就使得PHP只能是一個保持在一個比較簡單的web語言上面,這無疑更是錯誤的.PHP不乏大型的高速與高效的網(wǎng)站.并不是這些網(wǎng)站底層就沒有框架.
另外,還有輕信什么測試的結(jié)果.http://merbist.com/wp-content/uploads/2008/11/benchmarks.png,對于這個測試結(jié)果,我覺得,沒有一絲一毫的可信度.我們無法相信這些測試結(jié)果,主要原因有這么幾個方面.其一,PHP環(huán)境配置,是不是最優(yōu)化配置?第二,測試結(jié)果中所選框架,是不是最優(yōu)框架?僅拿CI與CAKE兩者來說,CI的日志,沒有多種輸出,只有文件輸出.這對于大型網(wǎng)站的管理是極不方便的.但是,如果將其改用LOG4PHP,那性能上的損失將會是多少,是不可想象的.原因在于,LOG4PHP是完全照抄的JAVA.至于CAKE,更是完全照抄RAILS.完全不顧及PHP的性能與語言自己的特性.
比如最簡單的,大量靜態(tài)辦法的使用.勢必造成以空間換時間.CAKE中無處不在的靜態(tài)辦法,導(dǎo)致了內(nèi)存中堆積大量的類.這種以空間換時間,是速度加快了,還是性能損失了,有多少人真正系統(tǒng)測試過?
CAKE讓RUBY的人了解PHP是對PHP的一個促進(jìn),同時,RAILS框架,也使得PHP框架得以注入新的血液,增加了新的開發(fā)思路.但,完全照抄是PHP目前最大的悲劇.這個當(dāng)中的經(jīng)典之作:CAKE:RUBY ON RAILS, SMARTY: JAVA STRRUTS LOG4PHP:JAVA LOG4J,可悲的是,寫這些抄襲之作的作者,都是對PHP不太了解,大量照搬RUBY,JAVA中的算法與函數(shù),有些可以算是翻譯,好比, LOG4PHP中的PROPERTIIES文件的處理就是這樣,不必再舉更多的實例了.為什么不能把JSF,或TYPESTRY也抄到PHP中,這是因為,如果沒有很好的PHP功底,這幾乎是不可能的.因為,這兩個東西,如果也是照抄過來,勢必慢如蝸牛.
再有,夢想不消PHP框架開發(fā)大型網(wǎng)站,肯定是錯上加錯.WORDPRESS,DISCUZ這類無框架,無架構(gòu)的極端糟糕的代碼,網(wǎng)上已屢見不鮮.
要拜訪數(shù)據(jù)庫,最小的需求,也要把數(shù)據(jù)庫拜訪封裝成一個類吧?要進(jìn)行錯誤與異常管理,也需要一個類吧?如果是大型的網(wǎng)站,總要有錯誤日志輸出,以方便調(diào)視與運行監(jiān)視吧.所以這些,拼一下,也算是PHP開發(fā)框架呀.
看樣子,否認(rèn)PHP應(yīng)當(dāng)有框架的人,肯定也就認(rèn)定,PHP做不了年夜網(wǎng)站.或者說,認(rèn)定,PHP做年夜網(wǎng)站,也是垃圾架構(gòu).這可能是太武斷了.
凡以為PHP是反框架的,實際上,是不了解PHP語言的一些瓶頸在何處,無法寫出高效的框架,所以,才這樣以為的.
本文轉(zhuǎn)載自ITeye!
本站文章除了注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯
《談?wù)劥蠹覍HP框架的各種誤解》是否對您有啟發(fā),歡迎查看更多與《談?wù)劥蠹覍HP框架的各種誤解》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/9107.html