您當(dāng)前位置: 主頁 > 資訊動(dòng)態(tài) > IT知識庫 >
PHP框架比較 之Symfony
優(yōu)點(diǎn):
1. Symfony 是我了解的PHP框架中功能最強(qiáng)大的,而且我使用時(shí)間比較長,但是很多功能還是沒有挖掘出來;它完整實(shí)現(xiàn)了MVC三層,封裝了所有東西,包括$_POST,$_GET 數(shù)據(jù),異常處理,調(diào)試功能,數(shù)據(jù)檢測;包含強(qiáng)大的緩存功能,自動(dòng)加載Class(這個(gè)功能很爽),強(qiáng)大的i18n國家化支持;具有很強(qiáng)大的view層操作,能夠零碎的包含單個(gè)多個(gè)文 件;非常強(qiáng)大的配置功能,使用yml配置能夠控制所有框架和程序運(yùn)行行為,強(qiáng)大到讓人無語;能夠很隨意的定義各種自己的class,并且symfony能夠自動(dòng)加載(auto load)這些 class,能夠在程序中隨意調(diào)用;包含強(qiáng)大的多層級項(xiàng)目和應(yīng)用管理:Project --> Application --> Module --> Action,能夠滿足一個(gè)項(xiàng)目下多個(gè)應(yīng)用的需要,并且每層 可以定義自己的類庫,配置文件,layout;非常強(qiáng)大的命令行操作功能,包括建立項(xiàng)目、建立應(yīng)用、建立模塊、刷新緩存等等;
--- 版權(quán)最終歸艾銻無限所有http://www.dyfgwiyq.cn/ 如需轉(zhuǎn)載,請標(biāo)明出處。
2. Symfony絕對是開發(fā)大型復(fù)雜項(xiàng)目的首選,因?yàn)槭褂昧薙ymfony,將大大節(jié)約開發(fā)成本,并且多人協(xié)作的時(shí)候,不會出現(xiàn)問題,在Project級別定義好基礎(chǔ)Class以后,任何
模塊都能夠重用,大大復(fù)用代碼
缺點(diǎn):
1. 數(shù)據(jù)庫操作model采用了重量級的propel和creole,不過在我測試的版本中已經(jīng)把他們移到了addon里,可用可不用
2. 緩存功能無法控制,每次開發(fā)調(diào)試總是緩存,需要執(zhí)行symfony cc, symfony rc 來清除和重建緩存;
3. 效率不是很高,特別是解析模板和讀取配置文件的過程,花費(fèi)時(shí)間不少;
4. 學(xué)習(xí)成本很高,并且國內(nèi)沒有成熟的社區(qū)和文檔,連中文手冊都沒有,相應(yīng)的要掌握所有功能,需要花費(fèi)比較多的時(shí)間
評價(jià):
Symfony絕對是企業(yè)級的框架,唯一能夠貌似能夠跟Java領(lǐng)域哪些強(qiáng)悍框架抗衡的東西;強(qiáng)悍的東西,自然學(xué)習(xí)復(fù)雜,但是相應(yīng)的對項(xiàng)目開發(fā)也比較有幫助,自然是推薦復(fù)雜的項(xiàng)
目使用Symfony來處理,覺得是值得,后期的維護(hù)成本比較低,復(fù)用性很強(qiáng)。相應(yīng)的如果使用Symfony的應(yīng)該都是比較復(fù)雜的互聯(lián)網(wǎng)項(xiàng)目,那么相應(yīng)的就要考慮關(guān)于數(shù)據(jù)庫分布的問
題,那么就需要拋棄Symfony自帶的數(shù)據(jù)庫操作層,需要自己定義,當(dāng)然了,Symfony支持隨意的構(gòu)造model層。
相關(guān)文章