PHP開發(fā)框架一覽表:表示框架是否內(nèi)建Ajax支持
2021-02-02
PHP開發(fā)框架最近已成為PHP社區(qū)中討論的熱門話題,并且?guī)缀趺刻於加行碌目蚣馨l(fā)布。面對市場上四十多個開發(fā)框架,很難判斷哪一個最適合您,尤其是當(dāng)這些框架提供的功能不同時。
概述
在下面,您將看到這十個開發(fā)框架的列表,列出了它們提供的功能。
#1:指示框架是否具有內(nèi)置的model-view-controller。
#2:指示框架是否可以不經(jīng)修改就支持多個數(shù)據(jù)庫。
#3:指示框架是否支持對象記錄映射器,通常這是一個ActiveRecord包。
#4:指示框架是否包含其他數(shù)據(jù)庫對象,例如TableGateWay。
#5:指示框架是否具有內(nèi)置的模板引擎。
#6:指示框架是否緩存對象或其他緩存機制。
#7:指示框架是否具有內(nèi)置的驗證或過濾組件。
#8:指示框架是否具有內(nèi)置的Ajax支持。
#9:指示框架是否具有內(nèi)置的用戶身份驗證模塊。
#10:指示框架是否包含其他模塊,例如RSS feed解析器,PDF模塊或其他有用的模塊。
Zend框架
Zend Framework盡管沒有利用比較表,但Zend Framework確實包括一些用于處理PDF文檔,RSS feed,在線服務(wù)(Amazon,F(xiàn)lickr,Yahoo)等等的模塊。 Zend Framework還包含幾個不同的數(shù)據(jù)庫對象,這極大地簡化了數(shù)據(jù)庫查詢的實現(xiàn),甚至免除了手寫SQL查詢腳本的麻煩。
當(dāng)前,Zend Framework尚未完全支持ORM,但是開發(fā)人員仍在是否是否添加ORM層的爭論中陷入困境。也許這些功能將在將來實現(xiàn),您可以編寫自己的ORM軟件包,為社區(qū)做出貢獻(xiàn),并有機會將其集成到框架的未來版本中。
Zend Framework看起來很有前途,并且還解決了一些常見的PHP問題。也許穩(wěn)定版可以在比較表中表現(xiàn)更好!
CakePHP
CakePHP是一個高級MVC框架,帶有一些模塊。它可以處理大多數(shù)數(shù)據(jù)庫事務(wù),并支持Ajax數(shù)據(jù)驗證。同時,其用戶身份驗證模塊(訪問列表)也非常獨特,可以在訪問網(wǎng)站的不同部分時為不同的用戶分配相應(yīng)的訪問權(quán)限。
盡管CakePHP的網(wǎng)站看起來令人困惑,但框架本身相對完整且可用。截至撰寫本文時,尚無穩(wěn)定版本,這確實令人驚訝。畢竟,它已經(jīng)開發(fā)了幾個月,但我想使用Beta版開發(fā)產(chǎn)品可能還可以。
Symfony項目
從比較表中不難看出Symfony是一個非??蓴U展的開發(fā)框架。它甚至具有稱為Propel的完全嵌入式ORM。 Propel也是一個開源項目,到目前為止可能是PHP上最好的項目。 ORM解決方案。 Symfony還為數(shù)據(jù)庫抽象層集成了Creole,為MVC模型層集成了Mojavi。因為它只重用這些項目的源代碼,而不是重寫它們,所以它使框架具有非常強大的可擴展性,這在表中顯而易見。
Symfony有兩個缺點,因此它不支持PHP4。這是由于需要支持PHP5中的許多新功能。其次,它相對復(fù)雜。大多數(shù)任務(wù)(例如分頁)在Symfony中都有一個時間限制,該時間限制比其他框架要復(fù)雜得多。這絕不是以其簡單性而聞名的框架。
海鷗框架
Seagull框架看起來不錯,具有許多功能。支持PHP4對其推廣也非常有利。我仍在使用PHP4,并且大多數(shù)托管服務(wù)提供商尚未完全支持PHP5。
不幸的是php框架比較php框架比較,Seagull不提供對Ajax的支持,這確實是不合理的,但是通過Google,您可以輕松地搜索有關(guān)自己添加Ajax支持的教程,將來應(yīng)將其添加到框架中。
WACT-Web應(yīng)用程序工具包
WACT具有巨大的潛力。該框架的基本組件很容易獲得,例如MVC,數(shù)據(jù)庫對象和模板引擎,但僅此而已。它沒有任何外部模塊,也缺少一些內(nèi)置功能,例如Ajax,緩存,驗證模塊等。
盡管如此,WACT仍然擁有最好的模板引擎,甚至可以幫助您創(chuàng)建自己的模板標(biāo)簽以擴展功能。
普拉多
Prado非常獨特,它提供了一些很酷的功能。它沒有對MVC的內(nèi)置支持(以我的觀點),但是它確實具有處理大多數(shù)PHP任務(wù)的各種組件,甚至更好的是,它實現(xiàn)了事件驅(qū)動的腳本。例如,在HTML按鈕上設(shè)置onClick事件以鏈接到PHP函數(shù)。這類似于ASP.NET,并且Prado確實包含更多的ASP.NET組件,例如GridView和Repeater Control。
僅根據(jù)比較表中的數(shù)據(jù),Prado似乎比其他框架要弱,但事實并非如此。因為Prado非常獨特,所以盡管得分很低,但在實際應(yīng)用中卻非常強大。
Trax上的PHP
這個框架似乎是Ruby和Rails在PHP上的接口。之前它實際上被稱為PHP on Rails。不幸的是,它的文檔太少了,因此很難確定該框架到底提供了什么,但是文檔中確實提到了ActiveRecord,因此它可能像RoR一樣提供ActiveRecord。此外,它還具有內(nèi)置的Ajax支持,從其網(wǎng)站上的兩個演示視頻中不難看出。
Trax上的PHP基本上可以滿足用戶對該框架的要求,但是它仍然缺少諸如驗證模塊和緩存模塊之類的東西。它也沒有任何外部模塊,所以目前,它是非常基本的。
ZooP框架
ZooP Framework可以說是無所不包的。從比較表中可以明顯看出,除了ORM層之外,幾乎所有應(yīng)支持的東西都受支持。更令人驚訝的是它支持PHP4,對于它提供的全面功能來說太簡單了,太好了!
ZooP還提供了內(nèi)置的GUI控件,使創(chuàng)建表單的工作變得非???。它支持最常見的表單元素。在常規(guī)HTML中使用GUI控件的優(yōu)點是可以將驗證的邏輯操作與GUI控件緊密結(jié)合。
eZ組件
Ez Components與其說是框架,不如說是一組組件,也許是因為它沒有對MVC的內(nèi)置支持。
它包括大多數(shù)常見組件,例如數(shù)據(jù)庫組件和緩存組件,但是仍然缺少某些組件。例如,沒有ActiveRecord組件和驗證組件。另一方面,它提供了一些外部組件,例如電子郵件組件,但是其他框架(例如Zend Framework)卻沒有提供更多的外部組件。
CodeIgniter
CodeIgniter是一個相對較新的框架。它的作者是ExpressionEngine的開發(fā)團(tuán)隊(譯者注:不幸的是,PHP博客程序pMachine的升級產(chǎn)品,它不是免費的),它看起來很有希望。不幸的是,盡管此功能仍在開發(fā)中,它尚不能處理多個數(shù)據(jù)庫。
它是從Ruby on Rails派生的,因此它提供了許多相同的功能,例如腳手架(自動代碼生成)。它的文檔非常好,甚至還有視頻教程可以幫助您快速入門。
我必須非常遺憾地宣布沒有人獲勝。每個框架提供不同的功能,因此沒有人能贏。與往常一樣,最終這將取決于個人偏好和選擇。我強烈建議您在做出決定之前,仔細(xì)研究每個框架的文檔,然后根據(jù)自己的判斷來做出決定。
我個人非常喜歡Zend Framework,但是在仔細(xì)研究了每個框架之后,我發(fā)現(xiàn)了很多有趣的功能,例如Prado事件或Symfony ORM包。
當(dāng)您真的無法決定選擇哪種框架時,您仍然可以像大多數(shù)人一樣選擇:自己動手做。盡管它既費時又費力,但卻很有趣。
如開頭所述,一些框架已進(jìn)行了重大更新,最近我更傾向于使用symfony。它豐富的文檔非常容易上手,但是它的復(fù)雜性也使開發(fā)小型項目變得容易,甚至像我這樣。個人微型項目的過程也略勝一籌,在這方面CodeIgniter的簡單性就足夠了。
轉(zhuǎn)載自