筆者第一次使用的框架是ZendFramework,這是Zend公司寫的一個徹底面向對象的MVC框架。同時,也是這個時候才瞭解MVC的思想。
在如此多的PHP MVC框架中,怎樣去選擇一款各方面都不錯的框架學習並在項目中使用它?這是每個PHPer都會面臨的問題。好比當前比較流行的框架有:ZendFrameWork、ThinkPHP(國產)、CodeIgniter、YII等。每一個人心目中的好壞標準不同,再加上有的人習慣了某框架,想讓他再接受其優秀的框架也是比較難的。因此,咱們應該怎樣去判斷一款框架是否屬於本身,變得很是的突出。如今我給出幾個標準,你們贊同的點個贊,不贊同的歡迎討論。
1、性能:
所謂的性能指的是IO、CPU佔用、PHP解析時間等幾個指標。當前的服務器最突出的問題是CPU已經很是快了,內存已經夠大夠便宜了,惟獨硬盤IO不夠高。這就像一個一個智商150與一個智商80的人作1+1同樣,根本體現不出智商的優越性。laravel
特別指出一點,ZendFrameWork框架是我見過IO效率最差的框架。在不借助任何緩存擴展與其餘框架對比狀況下,簡直不能忍受它的IO效率。相對來講,在IO這塊仍是那些用C語言寫的框架比較好,CPU佔用也低,內存使用也低。好比大名鼎鼎的Yaf框架。可是,它有一個致命的問題,框架安裝是以擴展形式安裝的。若是框架有Bug的話,也很難偵測到。
2、全棧式
雖然我我的不太同意PHP框架過分全棧式。可是,若是能把全棧式作到優雅簡潔,我也是很是興奮的。什麼是全棧式?就是一款框架包含了WEB開發中全部的東西。好比:上傳、分頁、導入導出、郵件、日誌、錯誤、二維碼、RSS、RBAC等。這樣的話,才能真正解決掉咱們去本身實現的麻煩,節省咱們的時間。也提升了代碼的安全性移植性。
3、學習難度是否陡峭
畢竟咱們要運用到實際的項目中。之後陸續還會添加更多的人進入項目開發中。若是,學習難度過於陡峭,勢必會影響項目的進度和後期維護的成本。目前,我用過的框架中ThinkPHP作得還不錯,文檔還比較完整易懂。換做正在用的YII框架,簡直是頭痛。提供的文檔實在是過於簡單,示例不夠豐富。並且,代碼不夠優雅。在某些設計上,過於面向對象,致使在PHP這種語言中操做起來不是特別順手。
4、框架社會是否活躍
一個社區活躍與否,直接關係到這個框架的將來的命運。誰也不但願今天還牛逼的框架,就由於沒有與時俱進,最終淹沒在歷史的長河中。本身又得花時間掌握新框架。好比:前幾天MongoDB仍是比較火的時候,當時幾乎沒有框架在DB層,即ORM實現這個數據庫的接口。而項目中可能會考慮使用MongoDB。當時幾個比較知名的且速度比較過得去的框架都沒有支持。結果,仍是我們國產的ThinkPHP支持了。雖然,BUG可能有點多。至少,某種程度說明了一個活躍的社區是很是有必要的。
5、框架使用的羣體大小
一款框架再牛逼,若是沒有人使用。你學了也只能在本身的一畝三分地有所建樹。出了這個圈,效果就不明顯了。PHPer學習這個東西,主要仍是爲了能找一份高薪順手的工做。若是,學了半天,結果卻沒有人用這個框架在項目中。那是至關悲催的。
綜合所述,選擇框架基於以上五個大點是很是有必要的。PHP初學者網站站長寒冰爲你們奉上本文,但願你們能有所收穫。順便說一下筆者所推崇的PHP框架:laravel。經過上面5個大點的對比,徹底超越了其餘的PHP框架。數據庫