轉帖|行業資訊|編輯:龔雪|2014-08-25 09:39:43.000|閱讀 732 次
概述:本文主要談談在開發工作中,大家對PHP開發框架的各種誤解。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
有人認為,PHP是每次請求都要初始化資源,這個開銷非常大。由此,PHP不適合使用開發框架。
對于PHP,確實沒有類的持久化,使得每次請求都要初始化資源,但是,這并不是開銷的主要問題所在。最主要的問題,是在于開發PHP框架的人,對PHP本身的特性了解多少。最簡單的,MVC需要檢測UA,如果使用PHP自帶的get_browser函數,那肯定是死定了。因為,使用上的方便與簡單,導致的是性能的開銷。
認為不可使用PHP開發框架的,還有的觀點是:由于需要每次請求的時候初始化整個框架。其實,這也是一種誤解。如果好好看看PHP源碼,就會了解,PHP是按請求加載需要運行的文件,并不是整個框架。所以,對于框架本身,哪一種框架內核代碼時越小,性能越好。
還有觀點:由于PHP這種每請求初始化資源的機制,也造成了PHP添加跨請求的高級特性相當困難。其實,跨請求本身,要看在哪一個層面。PHP提供了各類加速的緩存機制。雖然PHP的類是由于目前序列化函數仍有限制,不能持久化,但數據緩存對PHP的加速是相當快的。所以,認為由于這一限制,就使得PHP只能是一個保持在一個比較簡單的web語言上面,這無疑更是錯誤的。PHP不乏大型的高速與高效的網站。并不是這些網站底層就沒有框架。
另外,還有輕信什么測試的結果。//merbist.com/wp-content/uploads/2008/11/benchmarks.png,對于這個測試結果,我覺得,沒有一絲一毫的可信度。我們無法相信這些測試結果,主要原因有這么幾個方面。其一,PHP環境配置,是不是最優化配置?第二,測試結果中所選框架,是不是最優框架?僅拿CI與CAKE兩者來說,CI的日志,沒有多種輸出,只有文件輸出。這對于大型網站的管理是極不方便的。但是,如果將其改用LOG4PHP,那性能上的損失將會是多少,是不可想象的。原因在于,LOG4PHP是完全照抄的JAVA。至于CAKE,更是完全照抄RAILS。完全不顧及PHP的性能與語言本身的特性。
比如最簡單的,大量靜態方法的使用。勢必造成以空間換時間。CAKE中無處不在的靜態方法,導致了內存中堆積大量的類。這種以空間換時間,是速度加快了,還是性能損失了,有多少人真正系統測試過?
CAKE讓RUBY的人了解PHP是對PHP的一個促進,同時,RAILS框架,也使得PHP框架得以注入新的血液,增加了新的開發思路。但,完全照抄是PHP目前最大的悲劇。這個當中的經典之作:CAKE:RUBY ON RAILS, SMARTY: JAVA STRRUTS LOG4PHP:JAVA LOG4J,可悲的是,寫這些抄襲之作的作者,都是對PHP不太了解,大量照搬RUBY,JAVA中的算法與函數,有些可以算是翻譯,比如, LOG4PHP中的PROPERTIIES文件的處理就是這樣,不必再舉更多的實例了。為什么不能把JSF,或TYPESTRY也抄到PHP中,這是因為,如果沒有很好的PHP功底,這幾乎是不可能的。因為,這兩個東西,如果也是照抄過來,勢必慢如蝸牛。
再有,夢想不用PHP框架開發大型網站,肯定是錯上加錯。WORDPRESS,DISCUZ這類無框架,無架構的極端糟糕的代碼,網上已屢見不鮮。
要訪問數據庫,最小的需求,也要把數據庫訪問封裝成一個類吧?要進行錯誤與異常管理,也需要一個類吧?如果是大型的網站,總要有錯誤日志輸出,以方便調視與運行監視吧。所以這些,拼一下,也算是PHP開發框架呀。
看樣子,否認PHP應當有框架的人,肯定也就認定,PHP做不了大網站。或者說,認定,PHP做大網站,也是垃圾架構。這可能是太武斷了。
凡認為PHP是反框架的,實際上,是不了解PHP語言的一些瓶頸在何處,無法寫出高效的框架,所以,才這樣認為的。
本文轉載自ITeye!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網