一個(gè)出色的企業(yè)應(yīng)用開發(fā)框架.官方出品的框架
2021-11-05
禪
優(yōu)勢(shì):
Zend 在 PHP5 中使用了大量新的面向?qū)ο筇匦裕航涌?、異常、抽象類、SPL 等。這些東西的應(yīng)用使得 Zend 高度模塊化和靈活。同時(shí),由于嚴(yán)格遵循“為接口編程”和“單一對(duì)象責(zé)任”的原則,Zend
非常有希望成為優(yōu)秀的企業(yè)應(yīng)用開發(fā)框架。正式生產(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)(適配器)。文檔很全,國(guó)內(nèi)社區(qū)成熟,目前有很多Web2.0站點(diǎn)在使用,學(xué)習(xí)成本中等。
缺點(diǎn):
MVC功能比較弱,View層實(shí)現(xiàn)簡(jiǎn)單(和沒實(shí)現(xiàn)一樣),不能很強(qiáng)大的控制前端頁面。沒有自動(dòng)化腳本,創(chuàng)建一個(gè)應(yīng)用,包括入口文件,都必須自己手動(dòng)構(gòu)建,入口成本高。
對(duì)于簡(jiǎn)單的小項(xiàng)目,Zend 不僅可以提高開發(fā)效率。相反,由于框架中大量應(yīng)用了PHP5的面向?qū)ο笤O(shè)計(jì)和新特性,對(duì)開發(fā)者提出了更高的要求,間接增加了項(xiàng)目的開發(fā)成本。對(duì)于較大的項(xiàng)目和企業(yè)應(yīng)用程序,Zend 是一個(gè)很好的基礎(chǔ)。但是作為一個(gè)成熟的大型PHP框架,還需要一些努力。
評(píng)估:
作為官方框架,Zend 的野心是可以預(yù)見的。他們想擠掉其他框架php框架 比較,同時(shí)封裝了很多強(qiáng)大的類庫(kù),可以提供一站式的框架服務(wù),而且他們的開發(fā)團(tuán)隊(duì)非常強(qiáng)大,完全有能力。
我們正在努力開發(fā)非常強(qiáng)大的產(chǎn)品,所以如果我們花更多的時(shí)間來完善框架,Zend 的前景基本可以肯定。同樣,Zend架構(gòu)本身也比較優(yōu)雅,說明Zend官方高手不少,設(shè)計(jì)理念也比較先進(jìn)。雖然有些功能沒有完全實(shí)現(xiàn),比如View層、自動(dòng)化腳本等,但這些都依賴于未來。升級(jí)??偟膩碚f,Zend 是最受期待的框架。當(dāng)然,你把它放到你的項(xiàng)目中是完全沒問題的。
優(yōu)勢(shì):
是與RoR最相似的框架,包括設(shè)計(jì)方法和數(shù)據(jù)庫(kù)操作方法;設(shè)計(jì)層面很優(yōu)雅,沒有多余的東西,所有功能都是純框架,執(zhí)行效率還不錯(cuò);數(shù)據(jù)庫(kù)層
,功能很強(qiáng)大,比較適合復(fù)雜的業(yè)務(wù)處理,路由功能,配置功能也不錯(cuò),自動(dòng)搭建腳手架()很強(qiáng)大,適合中型應(yīng)用,已經(jīng)基本實(shí)現(xiàn)了MVC的每一層,具有自動(dòng)命令行腳本函數(shù)。文檔比較全面,在國(guó)內(nèi)已經(jīng)推廣成功。他們中的大多數(shù)人都知道學(xué)習(xí)的成本適中。
缺點(diǎn):
一個(gè)很嚴(yán)重的問題是理解為數(shù)據(jù)庫(kù)層操作,嚴(yán)重影響除了數(shù)據(jù)庫(kù)之外的操作能力。功能稍弱,配置功能稍弱;不適合大規(guī)模應(yīng)用,只適合中型應(yīng)用,稍微適合小規(guī)模應(yīng)用,學(xué)習(xí)成本有點(diǎn)高。
評(píng)估:
總的來說,框架代表了一個(gè)非常重要的時(shí)代,也是PHP框架的代表,在當(dāng)前扮演著非常重要的角色。很多自己寫的框架都有模仿的方式,是里程碑式的產(chǎn)品;
暴露了RoR的敏捷開發(fā)方式,將數(shù)據(jù)庫(kù)操作作為唯一的設(shè)計(jì)思路。它是開發(fā)快速應(yīng)用程序和原型的絕佳工具;同樣,Web2.0的開發(fā)框架也值得選擇。的。
優(yōu)勢(shì):
代碼提倡“簡(jiǎn)單就是美”的原則。沒有花哨的設(shè)計(jì)模式,沒有華麗的對(duì)象結(jié)構(gòu),一切就是那么簡(jiǎn)單。幾行代碼就可以開始運(yùn)行了,再多幾行代碼就可以輸出了。可謂是“道對(duì)劍”的典范。
配置簡(jiǎn)單,所有配置均使用PHP腳本進(jìn)行配置,執(zhí)行效率高;具有基本的路由功能,可以進(jìn)行一定程度的路由;具備初步功能,可以做出一定的界面外觀;數(shù)據(jù)庫(kù)層封裝良好,具有基本的MVC功能??焖俸?jiǎn)潔,代碼不多,執(zhí)行性能高,框架簡(jiǎn)單,使用方便,學(xué)習(xí)成本低,文檔詳細(xì);自帶很多簡(jiǎn)單易用,適合小型應(yīng)用的框架。
缺點(diǎn):
實(shí)現(xiàn)本身并不理想。內(nèi)部結(jié)構(gòu)太混亂了。雖然簡(jiǎn)單易用,但缺乏擴(kuò)展能力。該層簡(jiǎn)單理解為數(shù)據(jù)庫(kù)操作??蚣苈燥@簡(jiǎn)單,只能滿足小規(guī)模應(yīng)用的需求,滿足中型應(yīng)用需求的能力稍差。
評(píng)估:
一般來說,完成簡(jiǎn)單快速的應(yīng)用程序是值得的。同時(shí)在一定程度上可以構(gòu)造,方便模板的復(fù)用。數(shù)據(jù)操作層封裝的很好,用的不多。
更復(fù)雜的設(shè)計(jì)模式,執(zhí)行性能和代碼可讀性都不錯(cuò)。至于添加,它們還不錯(cuò),簡(jiǎn)單而高效。
優(yōu)勢(shì):
是我所知道的最強(qiáng)大的PHP框架,用了很久,但是很多功能都沒發(fā)現(xiàn);它完全實(shí)現(xiàn)了三層MVC并封裝了一切,包括$、$_GET
數(shù)據(jù)、異常處理、調(diào)試功能、數(shù)據(jù)檢測(cè);包括強(qiáng)大的緩存功能、自動(dòng)加載(這個(gè)功能很酷)、強(qiáng)大的語言支持;具有非常強(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)大的命令行操作功能,
應(yīng)用、構(gòu)建模塊、刷新緩存等,絕對(duì)是開發(fā)大型復(fù)雜項(xiàng)目的首選,因?yàn)闀?huì)大大節(jié)省開發(fā)成本,多人協(xié)作時(shí)也不會(huì)有問題。定義了層次,定義了基礎(chǔ)之后,任何模塊都可以復(fù)用,大大復(fù)用了代碼。
缺點(diǎn):
最大的問題是太多不同風(fēng)格的開源項(xiàng)目被用來形成一個(gè)框架。由于兩者和本身都相當(dāng)復(fù)雜,因此結(jié)構(gòu)非常復(fù)雜,難以理解和學(xué)習(xí)。
無法控制緩存功能。每次開發(fā)和調(diào)試時(shí)總是緩存,需要執(zhí)行cc、rc清除并重建緩存。效率不是很高,尤其是解析模板和讀取配置文件的過程,需要很多時(shí)間。學(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)的,如果你在使用相對(duì)復(fù)雜的互聯(lián)網(wǎng)項(xiàng)目,就必須相應(yīng)地考慮數(shù)據(jù)庫(kù)分布的問題,那么就需要舍棄內(nèi)置的數(shù)據(jù)庫(kù)操作層,需要自己定義,當(dāng)然支持任意構(gòu)建層。
速度快,借鑒了成熟的Java思想,但是一些基本的CURD相關(guān)操作,在實(shí)際使用中卻出現(xiàn)了錯(cuò)誤?;赑HP5,充分利用了PHP5的特性。我非常喜歡的是數(shù)據(jù)驗(yàn)證和自動(dòng)填充。但是,這也限制了自動(dòng)統(tǒng)計(jì)字段等小功能的添加。
還有一個(gè)功能是自動(dòng)生成數(shù)據(jù),但是這個(gè)不支持關(guān)聯(lián)。唉,它有很好的特點(diǎn)和想法,但它的實(shí)踐經(jīng)驗(yàn)很一般。據(jù)說文檔最豐富,確實(shí)如此,但是文檔和例子太籠統(tǒng)了。比如表關(guān)聯(lián)只在里面介紹了它的定義,其他的
沒有提到 CURD 操作。
它是一個(gè)用PHP開發(fā)的應(yīng)用程序框架(完全支持PHP4和PHP5),為開發(fā)者提供了創(chuàng)建自己的應(yīng)用程序所必需的基礎(chǔ)功能和輔助組件。它成熟、快速、功能豐富。但在一些細(xì)節(jié)沒有那么人性化,比如url字母
數(shù)字。url 函數(shù)的前兩個(gè)參數(shù)是控制器和動(dòng)作名稱,但反之亦然,因?yàn)楹芏嗲闆r下只輸入動(dòng)作名稱。而且,這個(gè)參數(shù)在數(shù)據(jù)庫(kù)的操作中的安排也不是人性化的。對(duì)數(shù)據(jù)的操作非常強(qiáng)大,居然可以操作中間表。文檔和例子很少,學(xué)習(xí)成本高。但是上手之后,就很簡(jiǎn)單了。框架的核心很小,但是通過靈活的配置,可以組合各種類型的基礎(chǔ)設(shè)施。對(duì)于簡(jiǎn)單的腳本頁面,不需要加載MVC模式,只需要為應(yīng)用提供業(yè)務(wù)邏輯和數(shù)據(jù)庫(kù)服務(wù)即可。對(duì)于復(fù)雜的應(yīng)用,可以從MVC模型完成
類型調(diào)用、訪問控制、數(shù)據(jù)校驗(yàn)到文件上傳、圖片處理等各種任務(wù),正是因?yàn)檫@種出色的定制和擴(kuò)展能力,才真正接近“滿足從簡(jiǎn)單應(yīng)用到企業(yè)的各種需求”的目標(biāo)。發(fā)展”。并且與很多其他框架不同,它是一個(gè)在實(shí)際開發(fā)中完全精煉的框架。作為一個(gè)完全國(guó)產(chǎn)的框架,它擁有完整的中國(guó)文化文檔和代碼注釋,在擴(kuò)展功能方面也關(guān)注國(guó)內(nèi)開發(fā)者的實(shí)際需求。因此php框架 比較,與國(guó)外各種框架相比,更容易被國(guó)內(nèi)開發(fā)者接受。
普通的留言:
以上幾個(gè)框架各有特點(diǎn),都是開源項(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ā)揮重要作用??焖匍_發(fā)和原型構(gòu)建非常適合開發(fā)目標(biāo)不明確的原型項(xiàng)目。該框架是國(guó)內(nèi)比較優(yōu)秀的框架,功能強(qiáng)大,簡(jiǎn)單易學(xué)。其靈活的設(shè)計(jì)堅(jiān)持簡(jiǎn)單的概念。如果您過于注重效率,請(qǐng)使用它。