《十款熱門PHP框架的淺析對比》要點:
本文介紹了十款熱門PHP框架的淺析對比,希望對您有用。如果有疑問,可以聯系我們。
PHP開發框架近來在PHP社區中成為討論的熱點,幾乎每天都在推出新的框架.面對市面上超過四十種的開發框架,你很難判斷畢竟哪一款最適合你,尤其是在這些框架所提供的功能不盡相同的時候.
概覽
以下你看到是這十款開發框架的一覽表,列舉了他們各自所提供的功效.
#1:表現框架是否內建模型-視圖-控制器.
#2:表現框架是否無需修改即可支持多數據庫.
#3:表現框架是否支持對象記錄映射器,通常這是ActiveRecord的封裝包.
#4:表示框架是否包括其它數據庫對象,比如TableGateWay.
#5:表現框架是否內建模板引擎.
#6:表現框架是否緩存對象或者其他緩存機制.
#7:表現框架是否內建校驗或過濾組件.
#8:表現框架是否內建Ajax支持.
#9:表現框架是否內建用戶驗證模塊.
#10:表示框架是否包括其他模塊,例如RSS feed解析器、PDF模塊或其他實用模塊.
Zend Framework
Zend Framework 盡管從對比表上來看它沒占到什么便宜,可Zend Framework確確實實涵括了一些處理PDF文檔、RSS源、在線服務(Amazon, Flickr, Yahoo)的模塊,甚至更多.Zend Framework同時也包括了數個不同的數據庫對象,極大地便捷了對數據庫進行查詢的實現,甚至免去你手寫SQL查詢腳本的麻煩.
當前,Zend Framework并未完全支持ORM,但是開發人員仍然陷入在是否要添加ORM層的爭論中.也許在將來會實現這些功能,你就可以編寫本身的ORM封裝包,投稿到社區,并有機會將之整合入框架的未來版本.
ZendFramework看上去前途一片光明,而且它同時又修正了一些常見的PHP問題.也許穩定版本就可以在對比內外面表現得更出色了!
CakePHP
CakePHP是一款高級的MVC框架,自帶了不多的幾個模塊.它可以處理大多數的數據庫事務,支持Ajax個數據驗證.同時,它的用戶驗證模塊(Accsee List)也非常獨特,可以針對不同的用戶在拜訪網站不同部分時分配對應的拜訪權限.
盡管CakePHP的網站看上去令人犯暈,但是框架本身已經比較完整可用了.截至成文尚未見穩定版本,實在令人感到有點意外,畢竟已經開發了好幾個月了,不過我猜想也許用beta版原來開發產品也未嘗不可吧
Symfony Project
從對比表中不難看出,Symfony是一款極具擴展性的開發框架,它甚至完整植入了一個叫做Propel的ORM,Propel也是開源項目,并且迄今為止可能是PHP上最好的ORM辦理方案.Symfony同時還整合了用于數據庫抽象層的Creole和用于MVC模型層的Mojavi.由于它僅僅是重用了這些項目的源代碼,而非重寫,由此使得框架具備了極為強大的擴展性,這一點在表中昭然若是.
Symfony有兩個缺憾,以使它不支持PHP4,這是由于需要PHP5中很多新特性的支持的結果,二是相對來說它有點復雜了.大多數任務,比喻像分頁,在Symfony中的時限比其他框架要復雜得多,這決不是一款簡潔著稱的框架.
Seagull Framework
Seagull framework看上去相當不錯,自帶了很多特性.支持PHP4也對它的推廣相當有利,我本人就仍在使用PHP4,況且大多數空間存放商尚未全面支持PHP5.
不幸的是,Seagull沒有提供對Ajax的支持,實在有點說不過去,不過通過Google可以毫不費力地搜索到一篇本身添加Ajax支持的教程,而且這點在將來應該會添加到框架中.
WACT - Web Application Toolkit
WACT很有潛力,框架的基件它一應俱全,像MVC、數據庫對象和模板引擎,不過僅此罷了.它沒有任何外掛模塊,同時也缺少一些內建的功能,例如Ajax、緩存、驗證模塊,等等.
盡管如此,WACT還是擁有最好的模板引擎,甚至可以贊助你創建自己的模板標簽來擴展功能.
Prado
Prado非常獨特,它提供了一些很酷的特性.它沒有內建對MVC的支持(就我看來),但是它確實擁有處理大多數PHP任務的各種各樣的組件,更棒的是,它實現了事件驅動腳本.例如,在一個HTML按鈕上設置onClick事件鏈接到一個PHP函數.這點近似ASP.NET,而Prado確實包括了更多的ASP.NET組件,像GridView和Repeater Control.
僅憑對比表上的數據,Prado看似要弱于其它框架,但事實并非如此.因為Prado如此獨特,盡管它得分不高,但是在實際應用中它是非常強年夜的.
PHP on Trax
這個框架看上其簡直就是Ruby and Rails在PHP上的一個接口,它以前也確實叫做PHP on Rails.不幸的是,它的文檔實在是太稀缺了,所以也很難判斷這個框架畢竟提供了些什么,但是文檔中的確提到了ActiveRecord,所以它可能提供ActiveRecord,就像RoR.還有就是它內建了Ajax支持,從它網站上的兩個演示視頻中不難看出.
PHP on Trax基本上能符合使用者對框架的要求,但是它還是缺胳膊少腿,比喻像驗證模塊和緩存模塊.它也沒有任何外掛模塊,是以目前來說,它很初級.
ZooP Framework
ZooP Framework可以說搜羅萬象,對比表上一目了然,差不多該支持的都支持了,除了ORM層.更意外驚喜的是它支持PHP4,這對于它提供的這么全面的功能來說實在是太不簡單了,太棒了!
ZooP還提供了內建的GUI控制,使得創建表單的工作變得異常快捷.它支持絕大多數的常用表單元素,在常規HTML里使用GUI控制的好處便是你可以將驗證的邏輯操作和GUI控制緊密地結合在一起.
eZ Components
與其說ez Components是個框架,不如說是一個組件集,可能正是因為如斯它并沒有內建對MVC的支持.
它包含了大多數常用組件,如數據庫組件和緩存組件,可還是缺少點東西.比方說,沒有ActiveRecord組件和驗證組件.另一方面,它提供了一些外掛組件,比如e-mail組件,但是不多,其它框架(像Zend Framework)提供的更多.
CodeIgniter
CodeIgniter相對來講是個很新的框架,它的作者是ExpressionEngine的開發團隊(譯者注: PHP blog程序pMachine的升級換代產品,很可惜不是免費的),看上去很有潛質.不幸的是,它尚不克不及處理多數據庫,盡管這項功能仍在開發中.
它源于Ruby on Rails,所以它提供了很多的相同功能,比如scaffolding(代碼自動生成).它的文檔編得相當棒,甚至還有視頻教程贊助你快速上手.
在這里我不得不非常遺憾地宣布,無人勝出.每個框架所提供的功能特性不盡相同,因此無人完勝.一如往常,最后這將取決于個人偏好和選擇.我極力保舉你在作出決定前先認真仔細地研讀各個框架的文檔,剩下就靠你自己判斷了.
就個人而言,我的確非常喜歡Zend Framework,但當我仔細研究了每個框架之后,我發現了很多有趣的功能,比喻說Prado的事件,抑或Symfony的ORM封裝包.
當你實在是無法決定選擇哪個框架的時候,你仍可以選擇像大多數人那樣: 本身動手.雖然耗時費力,但是樂趣無窮.
如開始所言,一部分框架已經有了長足的更新,而我最近比擬傾向于symfony,它充實的文檔令到上手非常方便,但是它的龐雜也令到開發小項目,甚至像我這樣的個人迷你項目的過程有點得不償失,也許CodeIgniter的簡潔在這方面已經足夠.
轉載來自http://www.shangxueba.com/jingyan/1918796.html
本站文章除了注明轉載外,均為本站原創或翻譯
維易PHP培訓學院每天發布《十款熱門PHP框架的淺析對比》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/9359.html