PHP開發框架近來在PHP社區中成為討論的熱點幾乎每天都在推出新的框架面對市面上超過四十種的開發框架你很難判斷究竟哪一款最適合你尤其是在這些框架所提供的功能不盡相同的時候
概覽
以下你看到是這十款開發框架的一覽表列舉了他們各自所提供的功能
#: 表示框架是否內建模型視圖控制器
#: 表示框架是否無需修改即可支持多數據庫
#: 表示框架是否支持對象記錄映射器通常這是ActiveRecord的封裝包
#: 表示框架是否包含其它數據庫對象比如TableGateWay
#: 表示框架是否內建模板引擎
#: 表示框架是否緩存對象或者其他緩存機制
#: 表示框架是否內建校驗或過濾組件
#: 表示框架是否內建Ajax支持
#: 表示框架是否內建用戶驗證模塊
#: 表示框架是否包含其他模塊例如RSS feed解析器PDF模塊或其他實用模塊
Zend Framework
Zend Framework 盡管從對比表上來看它沒占到什麼便宜可Zend Framework確確實實涵括了一些處理PDF文檔RSS源在線服務(Amazon Flickr Yahoo)的模塊甚至更多Zend Framework同時也包含了數個不同的數據庫對象極大地便捷了對數據庫進行查詢的實現甚至免去你手寫SQL查詢腳本的麻煩
當前Zend Framework並未完全支持ORM但是開發人員仍然陷入在是否要添加ORM層的爭論中也許在將來會實現這些功能你就可以編寫自己的ORM封裝包投稿到社區並有機會將之整合入框架的未來版本
Zend Framework看上去前途一片光明而且它同時又修正了一些常見的PHP問題也許穩定版本就可以在對比表裡面表現得更出色了!
CakePHP
CakePHP是一款高級的MVC框架自帶了不多的幾個模塊它可以處理大多數的數據庫事務支持Ajax個數據驗證同時它的用戶驗證模塊(Accsee List)也非常獨特可以針對不同的用戶在訪問網站不同部分時分配對應的訪問權限
盡管CakePHP的網站看上去令人犯暈但是框架本身已經比較完整可用了截至成文尚未見穩定版本實在令人感到有點意外畢竟已經開發了好幾個月了不過我猜想也許用beta版本來開發產品也未嘗不可吧
Symfony Project
從 對比表中不難看出Symfony是一款極具擴展性的開發框架它甚至完整植入了一個叫做Propel的ORMPropel也是開源項目並且迄今為止 可能是PHP上最好的ORM解決方案Symfony同時還整合了用於數據庫抽象層的Creole和用於MVC模型層的Mojavi由於它僅僅是重用了 這些項目的源代碼而非重寫由此使得框架具備了極為強大的擴展性這一點在表中昭然若是
Symfony有兩個缺憾以使它不支持PHP這是由於需要PHP中很多新特性的支持的結果二是相對來說它有點復雜了大多數任務比方像分頁在Symfony中的時限比其他框架要復雜得多這決不是一款簡潔著稱的框架
Seagull Framework
Seagull framework看上去相當不錯自帶了很多特性支持PHP也對它的推廣相當有利我本人就仍在使用PHP況且大多數空間寄存商尚未全面支持PHP
不幸的是Seagull沒有提供對Ajax的支持實在有點說不過去不過通過Google可以毫不費力地搜索到一篇自己添加Ajax支持的教程而且這點在將來應該會添加到框架中
WACT Web Application Toolkit
WACT很有潛力框架的基件它一應俱全像MVC數據庫對象和模板引擎不過僅此而已它沒有任何外掛模塊同時也缺少一些內建的功能例如Ajax緩存驗證模塊等等
盡管如此WACT還是擁有最好的模板引擎甚至可以幫助你創建自己的模板標簽來擴展功能
Prado
Prado 非常獨特它提供了一些很酷的特性它沒有內建對MVC的支持(就我看來)但是它確實擁有處理大多數PHP任務的各種各樣的組件更棒的是它實現了事 件驅動腳本例如在一個HTML按鈕上設置onClick事件鏈接到一個PHP函數這點近似ASPNET而Prado確實包含了更多的 ASPNET組件像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層更意外驚喜的是它支持PHP這對於它提供的這麼全面的功能來說實在是太不簡單了太棒了!
ZooP還提供了內建的GUI控制使得創建表單的工作變得異常快捷它支持絕大多數的常用表單元素在常規HTML裡使用GUI控制的好處就是你可以將驗證的邏輯操作和GUI控制緊密地結合在一起
eZ Components
與其說ez Components是個框架不如說是一個組件集可能正是因為如此它並沒有內建對MVC的支持
它包括了大多數常用組件如數據庫組件和緩存組件可還是缺少點東西比方說沒有ActiveRecord組件和驗證組件另一方面它提供了一些外掛組件比如email組件但是不多其它框架(像Zend Framework)提供的更多
CodeIgniter
CodeIgniter相對來講是個很新的框架它的作者是ExpressionEngine的開發團隊(譯者注: PHP blog程序pMachine的升級換代產品很可惜不是免費的)看上去很有潛質不幸的是它尚不能處理多數據庫盡管這項功能仍在開發中
它源於Ruby on Rails所以它提供了很多的相同功能比如scaffolding(代碼自動生成)它的文檔編得相當棒甚至還有視頻教程幫助你快速上手
獲勝者是
在這裡我不得不非常遺憾地宣布無人勝出每個框架所提供的功能特性不盡相同因此無人完勝一如往常最後這將取決於個人偏好和選擇我極力推薦你在作出決定前先認真仔細地研讀各個框架的文檔剩下就靠你自己判斷了
就個人而言我的確非常喜歡Zend Framework但當我仔細研究了每個框架之後我發現了很多有趣的功能比方說Prado的事件抑或Symfony的ORM封裝包
當你實在是無法決定選擇哪個框架的時候你仍可以選擇像大多數人那樣: 自己動手雖然耗時費力但是樂趣無窮
如開始所言一部分框架已經有了長足的更新而我最近比較傾向於symfony它充實的文檔令到上手非常方便但是它的龐雜也令到開發小項目甚至像我這樣的個人迷你項目的過程有點得不償失也許CodeIgniter的簡潔在這方面已經足夠
From:http://tw.wingwit.com/Article/program/PHP/201311/21250.html