亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺析十款PHP開發(fā)框架的對比

 更新時間:2013年07月05日 09:50:02   投稿:jingxian  
本文將引導(dǎo)你遍覽十款最熱門最流行的開發(fā)框架,并對它們作出橫向比對。我會先列出一張所有框架的一覽表,而后我們將對它們逐個簡述

PHP開發(fā)框架近來在PHP社區(qū)中成為討論的熱點,幾乎每天都在推出新的框架。面對市面上超過四十種的開發(fā)框架,你很難判斷究竟哪一款最適合你,尤其是在這些框架所提供的功能不盡相同的時候。 
 
概覽
以下你看到是這十款開發(fā)框架的一覽表,列舉了他們各自所提供的功能。
#1:
表示框架是否內(nèi)建模型-視圖-控制器。
#2: 表示框架是否無需修改即可支持多數(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 Framework
Zend Framework 盡管從對比表上來看它沒占到什么便宜,可Zend Framework確確實實涵括了一些處理PDF文檔、RSS源、在線服務(wù)(Amazon, Flickr, Yahoo)的模塊,甚至更多。Zend Framework同時也包含了數(shù)個不同的數(shù)據(jù)庫對象,極大地便捷了對數(shù)據(jù)庫進行查詢的實現(xiàn),甚至免去你手寫SQL查詢腳本的麻煩。
 
當(dāng)前,Zend Framework并未完全支持ORM,但是開發(fā)人員仍然陷入在是否要添加ORM層的爭論中。也許在將來會實現(xiàn)這些功能,你就可以編寫自己的ORM封裝包,投稿到社區(qū),并有機會將之整合入框架的未來版本。
 
Zend Framework看上去前途一片光明,而且它同時又修正了一些常見的PHP問題。也許穩(wěn)定版本就可以在對比表里面表現(xiàn)得更出色了! 
 
CakePHP
CakePHP是一款高級的MVC框架,自帶了不多的幾個模塊。它可以處理大多數(shù)的數(shù)據(jù)庫事務(wù),支持Ajax個數(shù)據(jù)驗證。同時,它的用戶驗證模塊(Accsee List)也非常獨特,可以針對不同的用戶在訪問網(wǎng)站不同部分時分配對應(yīng)的訪問權(quán)限。
 
盡管CakePHP的網(wǎng)站看上去令人犯暈,但是框架本身已經(jīng)比較完整可用了。截至成文尚未見穩(wěn)定版本,實在令人感到有點意外,畢竟已經(jīng)開發(fā)了好幾個月了,不過我猜想也許用beta版本來開發(fā)產(chǎn)品也未嘗不可吧
 
Symfony Project
從對比表中不難看出,Symfony是一款極具擴展性的開發(fā)框架,它甚至完整植入了一個叫做Propel的ORM,Propel也是開源項目,并且迄今為止可能是PHP上最好的ORM解決方案。Symfony同時還整合了用于數(shù)據(jù)庫抽象層的Creole和用于MVC模型層的Mojavi。由于它僅僅是重用了這些項目的源代碼,而非重寫,由此使得框架具備了極為強大的擴展性,這一點在表中昭然若是。
 
Symfony有兩個缺憾,以使它不支持PHP4,這是由于需要PHP5中很多新特性的支持的結(jié)果,二是相對來說它有點復(fù)雜了。大多數(shù)任務(wù),比方像分頁,在Symfony中的時限比其他框架要復(fù)雜得多,這決不是一款簡潔著稱的框架。 
 
Seagull Framework 
Seagull framework看上去相當(dāng)不錯,自帶了很多特性。支持PHP4也對它的推廣相當(dāng)有利,我本人就仍在使用PHP4,況且大多數(shù)空間寄存商尚未全面支持PHP5。
 
不幸的是,Seagull沒有提供對Ajax的支持,實在有點說不過去,不過通過Google可以毫不費力地搜索到一篇自己添加Ajax支持的教程,而且這點在將來應(yīng)該會添加到框架中。 
 
WACT - Web Application Toolkit
盡管如此,WACT還是擁有最好的模板引擎,甚至可以幫助你創(chuàng)建自己的模板標(biāo)簽來擴展功能。 
 
Prado
Prado非常獨特,它提供了一些很酷的特性。它沒有內(nèi)建對MVC的支持(就我看來),但是它確實擁有處理大多數(shù)PHP任務(wù)的各種各樣的組件,更棒的是,它實現(xiàn)了事件驅(qū)動腳本。例如,在一個HTML按鈕上設(shè)置onClick事件鏈接到一個PHP函數(shù)。這點近似ASP.NET,而Prado確實包含了更多的ASP.NET組件,像GridView和Repeater Control。
 
僅憑對比表上的數(shù)據(jù),Prado看似要弱于其它框架,但事實并非如此。因為Prado如此獨特,盡管它得分不高,但是在實際應(yīng)用中它是非常強大的。 
 
PHP on Trax
這個框架看上其簡直就是Ruby and Rails在PHP上的一個接口,它以前也確實叫做PHP on Rails。不幸的是,它的文檔實在是太稀缺了,所以也很難判斷這個框架究竟提供了些什么,但是文檔中的確提到了ActiveRecord,所以它可能提供ActiveRecord,就像RoR。還有就是它內(nèi)建了Ajax支持,從它網(wǎng)站上的兩個演示視頻中不難看出。
 
ZooP Framework
ZooP Framework可以說包羅萬象,對比表上一目了然,差不多該支持的都支持了,除了ORM層。更意外驚喜的是它支持PHP4,這對于它提供的這么全面的功能來說實在是太不簡單了,太棒了!
 
ZooP還提供了內(nèi)建的GUI控制,使得創(chuàng)建表單的工作變得異常快捷。它支持絕大多數(shù)的常用表單元素,在常規(guī)HTML里使用GUI控制的好處就是你可以將驗證的邏輯操作和GUI控制緊密地結(jié)合在一起。 
 
eZ Components
與其說ez Components是個框架,不如說是一個組件集,可能正是因為如此它并沒有內(nèi)建對MVC的支持。
 
CodeIgniter 
CodeIgniter相對來講是個很新的框架,它的作者是ExpressionEngine的開發(fā)團隊(譯者注: PHP blog程序pMachine的升級換代產(chǎn)品,很可惜不是免費的),看上去很有潛質(zhì)。不幸的是,它尚不能處理多數(shù)據(jù)庫,盡管這項功能仍在開發(fā)中。
 
它源于Ruby on Rails,所以它提供了很多的相同功能,比如scaffolding(代碼自動生成)。它的文檔編得相當(dāng)棒,甚至還有視頻教程幫助你快速上手。 

獲勝者是...
在這里我不得不非常遺憾地宣布,無人勝出。每個框架所提供的功能特性不盡相同,因此無人完勝。一如往常,最后這將取決于個人偏好和選擇。我極力推薦你在作出決定前先認(rèn)真仔細(xì)地研讀各個框架的文檔,剩下就靠你自己判斷了。
 
就個人而言,我的確非常喜歡Zend Framework,但當(dāng)我仔細(xì)研究了每個框架之后,我發(fā)現(xiàn)了很多有趣的功能,比方說Prado的事件,抑或Symfony的ORM封裝包。
 
當(dāng)你實在是無法決定選擇哪個框架的時候,你仍可以選擇像大多數(shù)人那樣: 自己動手。雖然耗時費力,但是樂趣無窮。
 
如開始所言,一部分框架已經(jīng)有了長足的更新,而我最近比較傾向于symfony,它充實的文檔令到上手非常方便,但是它的龐雜也令到開發(fā)小項目,甚至像我這樣的個人迷你項目的過程有點得不償失,也許CodeIgniter的簡潔在這方面已經(jīng)足夠。

相關(guān)文章

  • PHP操作MySQL的常用代碼段梳理與總結(jié)

    PHP操作MySQL的常用代碼段梳理與總結(jié)

    MySQL時我們常會使用的數(shù)據(jù)庫語言,關(guān)于PHP操作MySQL的常用代碼段小編匯總整理了一遍,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以收藏下
    2021-09-09
  • 常用的PHP加密解密函數(shù)分享

    常用的PHP加密解密函數(shù)分享

    項目中有時我們需要使用PHP將特定的信息進行加密,也就是通過加密算法生成一個加密字符串,這個加密后的字符串可以通過解密算法進行解密,本文給大家分享了一些比較經(jīng)典的PHP加密解密函數(shù)代碼,需要的朋友可以參考下
    2023-09-09
  • PHP面向?qū)ο蟪绦蛟O(shè)計組合模式與裝飾模式詳解

    PHP面向?qū)ο蟪绦蛟O(shè)計組合模式與裝飾模式詳解

    這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計組合模式與裝飾模式,結(jié)合實例形式詳細(xì)分析了php組合模式與裝飾模式的定義、功能、使用方法與相關(guān)注意事項,需要的朋友可以參考下
    2016-12-12
  • PHP global全局變量經(jīng)典應(yīng)用與注意事項分析【附$GLOBALS用法對比】

    PHP global全局變量經(jīng)典應(yīng)用與注意事項分析【附$GLOBALS用法對比】

    這篇文章主要介紹了PHP global全局變量經(jīng)典應(yīng)用與注意事項,結(jié)合實例形式分析了php中g(shù)lobal全局變量的功能、使用方法及相關(guān)操作注意事項,并附帶了$GLOBALS用法作為對比,需要的朋友可以參考下
    2019-07-07
  • PHP的消息通信機制測試實例

    PHP的消息通信機制測試實例

    這篇文章主要介紹了PHP的消息通信機制,結(jié)合實例形式分析了php消息通信的信息發(fā)送與獲取相關(guān)操作技巧,需要的朋友可以參考下
    2016-11-11
  • Windows 下的 PHP-PEAR 安裝方法

    Windows 下的 PHP-PEAR 安裝方法

    發(fā)現(xiàn)自己的 Windows 下的 PHP 環(huán)境沒有安裝 pear ,于是從網(wǎng)上找到了這個安裝文件:go-pear.php
    2010-11-11
  • PHP之COOKIE支持詳解

    PHP之COOKIE支持詳解

    建立商業(yè)站點或者功能比較完善的個人站點,常常需要記錄訪問者的信息,在PHP中提供了兩種方便的手段:session和cookie功能.為了永久的保持用戶信息,則cookie是最便捷的手段.在這里我將為大家詳細(xì)的講解cookie的功能及使用方法.
    2010-09-09
  • php設(shè)計模式之簡單工廠模式詳解

    php設(shè)計模式之簡單工廠模式詳解

    這篇文章主要介紹了php設(shè)計模式的簡單工廠模式,又稱為靜態(tài)工廠方法模式,是一種重要的PHP設(shè)計模式,需要的朋友可以參考下
    2014-09-09
  • php自動給文章加關(guān)鍵詞鏈接的函數(shù)代碼

    php自動給文章加關(guān)鍵詞鏈接的函數(shù)代碼

    自動給文章加關(guān)鍵詞鏈接的php函數(shù)代碼,需要的朋友可以參考下
    2012-11-11
  • 關(guān)于PHP的curl開啟問題探討

    關(guān)于PHP的curl開啟問題探討

    新浪提供的PHP SDK里需要用到curl_init()函數(shù),在調(diào)試的時候報找不到curl_init()的方法,下面為大家介紹下開啟curl的步驟
    2014-04-04

最新評論