幾個(gè)主流國(guó)外PHP框架選型參考
2021-08-18
最近簡(jiǎn)單的用了幾個(gè)目前國(guó)內(nèi)用的比較多的國(guó)外主流PHP框架(不包括國(guó)內(nèi)框架)。我對(duì)這些框架有一種直觀的感覺。讓我簡(jiǎn)要分享一下選擇哪些。到時(shí)候,權(quán)當(dāng)參考。
主要參考框架包括:,,,
說明:我沒有認(rèn)真使用過很多框架。我只是簡(jiǎn)單地嘗試了一下。我的許多觀點(diǎn)可能不成熟或??錯(cuò)誤。請(qǐng)指正,共同成長(zhǎng)。
[ ]
官網(wǎng):
中文網(wǎng)站:
中文手冊(cè):
視頻教程:
測(cè)試版:.6.1
優(yōu)點(diǎn):
1. 配置簡(jiǎn)單,所有配置使用PHP腳本配置,執(zhí)行效率高;具有基本的路由功能,可以進(jìn)行一定級(jí)別的路由;具備初步功能,可以做出一定程度的界面外觀;數(shù)據(jù)庫(kù)層 封裝好,有基本的MVC功能
2.快速簡(jiǎn)潔,代碼不多,執(zhí)行性能高,框架簡(jiǎn)單,使用方便,學(xué)習(xí)成本低,文檔詳細(xì);自帶很多簡(jiǎn)單好用的框架,適合小型應(yīng)用
缺點(diǎn):
1.簡(jiǎn)單理解為數(shù)據(jù)庫(kù)操作的層
2. 框架有點(diǎn)簡(jiǎn)單,只能滿足小型應(yīng)用的需求,滿足中型應(yīng)用需求的能力稍差
評(píng)論:
總的來說,完成簡(jiǎn)單快速的應(yīng)用程序是值得的。同時(shí)在一定程度上可以構(gòu)造,方便模板復(fù)用。數(shù)據(jù)操作層封裝的很好php框架 比較,沒有使用太多過于復(fù)雜的設(shè)計(jì)模式。性能和代碼可讀性都很好。至于額外的,它們還不錯(cuò),簡(jiǎn)單而高效。
[ ]
官網(wǎng):
中文手冊(cè):
視頻教程:
測(cè)試版:.1.19.6305
優(yōu)點(diǎn):
1.是與RoR最相似的框架,包括設(shè)計(jì)方法和數(shù)據(jù)庫(kù)操作方法;設(shè)計(jì)層面很優(yōu)雅,沒有內(nèi)在的冗余,所有功能都是純框架,執(zhí)行效率還不錯(cuò);數(shù)據(jù)庫(kù)層可以,功能很強(qiáng)大,適合復(fù)雜的業(yè)務(wù)處理;路由功能,配置功能也不錯(cuò);自動(dòng)搭建腳手架()非常強(qiáng)大;適用于中型應(yīng)用; MVC各層的基本實(shí)現(xiàn);具有自動(dòng)命令行腳本功能;
2. 文檔比較齊全,已經(jīng)在國(guó)內(nèi)推廣成功。大多數(shù)人都知道學(xué)習(xí)成本適中
缺點(diǎn):
1.一個(gè)很嚴(yán)重的問題是理解為數(shù)據(jù)庫(kù)層操作,嚴(yán)重影響除了數(shù)據(jù)庫(kù)之外的操作能力
2.的功能稍弱,配置功能稍弱;不適合大規(guī)模應(yīng)用,只適合中型應(yīng)用。對(duì)于小規(guī)模應(yīng)用,學(xué)習(xí)成本略高。
評(píng)論:
總的來說,框架代表了一個(gè)非常重要的時(shí)代,也是PHP框架的代表,在當(dāng)前扮演著非常重要的角色。很多自己寫的框架都有模仿的方式,是里程碑式的產(chǎn)品;它揭示了 RoR 的敏捷開發(fā)方法和數(shù)據(jù)庫(kù)操作作為唯一的設(shè)計(jì)思想是開發(fā)快速應(yīng)用程序和原型的絕佳工具;同樣,作為Web2.0網(wǎng)站的開發(fā)框架也值得選擇。
[禪宗]
官網(wǎng):
中文手冊(cè):
視頻教程:
測(cè)試版:-1.5.0
優(yōu)點(diǎn):
1.官方產(chǎn)品,自帶很多,框架本身使用了很多設(shè)計(jì)模式來編寫,架構(gòu)很優(yōu)雅,執(zhí)行效率適中;在MVC設(shè)計(jì)中比較簡(jiǎn)單,有路由功能,有比較強(qiáng)大的配置文件(可以處理XML和php INI)。它非常強(qiáng)大,擁有所有PHP框架中最全面的功能。它不僅是一個(gè)框架,還是一個(gè)大型庫(kù)(替代 PEAR)。這是它的主要特點(diǎn);可以直觀的支持?jǐn)?shù)據(jù)庫(kù)操作以外的層(強(qiáng)于和),可以方便的使用函數(shù)加載其他新增的;功能非常強(qiáng)大,從前端到后端支持,后端支持,APC,,文件等等;數(shù)據(jù)庫(kù)操作功能非常強(qiáng)大,支持各種驅(qū)動(dòng)(適配器)
2.文檔齊全,國(guó)內(nèi)社區(qū)成熟,目前有很多Web2.0網(wǎng)站在使用,學(xué)習(xí)成本中等
缺點(diǎn):
1.MVC 功能補(bǔ)全比較弱,View層實(shí)現(xiàn)簡(jiǎn)單(和沒實(shí)現(xiàn)一樣),不可能非常強(qiáng)大地控制前端頁面
2. 沒有自動(dòng)腳本。要?jiǎng)?chuàng)建應(yīng)用程序,包括入口文件,都必須自己手動(dòng)構(gòu)建,上手成本很高。
3. Zend 作為中型應(yīng)用框架問題不大,勉強(qiáng)可以作為大型應(yīng)用的框架,但作為成熟的大型 PHP 框架,還是需要一些努力
評(píng)論:
作為官方框架,Zend 的雄心是可以預(yù)見的。他們想擠出其他框架,封裝很多強(qiáng)大的庫(kù)來提供一站式的框架服務(wù),而且他們的開發(fā)團(tuán)隊(duì)非常強(qiáng)大,完全有足夠的能力開發(fā)非常強(qiáng)大的產(chǎn)品,所以基本上可以肯定Zend的前景廣闊,如果需要更多時(shí)間來完善框架。同樣的,Zend架構(gòu)本身也比較優(yōu)雅,說明Zend官方有很多高手,設(shè)計(jì)理念也比較先進(jìn)。雖然有些功能沒有完全實(shí)現(xiàn),比如View層、自動(dòng)化腳本等,但這些都依賴于未來。升級(jí)??偟膩碚f,Zend 是最受期待的框架。當(dāng)然,你把它放到你的項(xiàng)目中是完全沒問題的。
[ ]
官網(wǎng):
中文網(wǎng)站:
權(quán)威指南:
學(xué)習(xí)參考:
測(cè)試版:-1.0.13
優(yōu)點(diǎn):
1.是我所知道的最強(qiáng)大的PHP框架,用了很久,但是很多功能沒挖出來;全面實(shí)現(xiàn)三層MVC,封裝了一切,包括$、$_GET數(shù)據(jù)、異常處理、調(diào)試函數(shù)、數(shù)據(jù)檢測(cè);包括強(qiáng)大的緩存功能,自動(dòng)加載(這個(gè)功能很酷),強(qiáng)大的i18n國(guó)產(chǎn)化支持;具有非常強(qiáng)大的視圖層操作,可以包含單個(gè)和多個(gè)文件;非常強(qiáng)大的配置功能,使用yml配置可以控制所有框架和程序運(yùn)行行為,強(qiáng)大到讓人無語;可以隨意定義各種自己的,并且可以自動(dòng)加載(auto load)這些,可以在程序中隨意調(diào)用;包含強(qiáng)大的多級(jí)項(xiàng)目和應(yīng)用管理:--> --> -->,可以滿足一個(gè)項(xiàng)目下多個(gè)應(yīng)用的??需求,并且每一層都可以定義自己的類庫(kù)和配置文件;非常強(qiáng)大的命令行操作功能,包括構(gòu)建項(xiàng)目、構(gòu)建應(yīng)用、構(gòu)建模塊、刷新緩存等;
2.絕對(duì)是大型復(fù)雜項(xiàng)目開發(fā)的首選,因?yàn)槭褂盟鼤?huì)大大節(jié)省開發(fā)成本,多人協(xié)作時(shí)也不會(huì)有問題。在定義了級(jí)別并建立了基礎(chǔ)之后,任何模塊都可以重復(fù)使用。極大地重用代碼
缺點(diǎn):
1. 數(shù)據(jù)庫(kù)操作使用重量級(jí)的和,但是已經(jīng)搬進(jìn)我測(cè)試的版本了,能不能用
2. 無法控制緩存功能。每次開發(fā)調(diào)試總是緩存,需要執(zhí)行cc,rc清除并重建緩存;
3.效率不是很高,尤其是解析模板和讀取配置文件的過程,需要很多時(shí)間;
4. 學(xué)習(xí)成本很高,國(guó)內(nèi)也沒有成熟的社區(qū)和文檔,也沒有中文手冊(cè)。因此,掌握所有功能需要花費(fèi)大量時(shí)間。
評(píng)論:
絕對(duì)是企業(yè)級(jí)框架,唯一能與Java領(lǐng)域強(qiáng)大的框架抗衡的東西;強(qiáng)大的東西自然學(xué)起來比較復(fù)雜,但是對(duì)應(yīng)的東西對(duì)項(xiàng)目開發(fā)也更有幫助。當(dāng)然,建議使用復(fù)雜的項(xiàng)目。處理起來,我覺得還是值得的,后期維護(hù)成本比較低,復(fù)用性很強(qiáng)。相應(yīng)的,如果你在使用更復(fù)雜的互聯(lián)網(wǎng)項(xiàng)目,就必須相應(yīng)地考慮數(shù)據(jù)庫(kù)分布的問題,那么就需要舍棄內(nèi)置的數(shù)據(jù)庫(kù)操作層,需要自己定義,當(dāng)然支持任意構(gòu)建層。
【一般評(píng)論】
以上幾個(gè)框架各有特點(diǎn)php框架 比較,都是開源項(xiàng)目。但是,這些框架針對(duì)不同的項(xiàng)目。一般來說,它們更適合小型項(xiàng)目,而 Zend 更適合中型項(xiàng)目,更適合大型重量級(jí)項(xiàng)目。在選擇模型時(shí),必須充分考慮框架的可定制性和可擴(kuò)展性,因?yàn)槊總€(gè)項(xiàng)目都無法確定是否會(huì)隨著需求的變化而變化。
相對(duì)來說,Zend 和響應(yīng)變化的能力都比較強(qiáng),尤其是那些可以隨意自定義層的,可以很方便的添加自己的業(yè)務(wù)或者數(shù)據(jù)處理。我個(gè)人推薦在大中型項(xiàng)目中使用該框架。并且也可以在中小型項(xiàng)目、快速開發(fā)和原型構(gòu)建中發(fā)揮重要作用,非常適合目標(biāo)不明確的原型項(xiàng)目的開發(fā)。理解一個(gè)框架的最好方法是使用它,而學(xué)習(xí)它的最好方法是觀看視頻。 :-)
仁者見仁,智者見智。在為項(xiàng)目選擇框架時(shí),請(qǐng)仔細(xì)考察項(xiàng)目的需求和未來的變化,然后選擇一個(gè)合適的框架,以在項(xiàng)目開發(fā)速度和后期可維護(hù)性之間取得合理的平衡。當(dāng)然也許,自己寫一個(gè)框架更合適。 :-)
大體評(píng)估了幾個(gè)框架,估計(jì)很多東西都沒有說到點(diǎn)子上,暫時(shí)先看一下,歡迎大家多多指正和指正!