熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

國外主流PHP框架對比評測

2013-11-15 12:42:25  來源: PHP編程 

  最近簡單的使用了目前在國內用的比較多的幾個主流國外PHP框架(不包括國內框架)大致對這些框架有個直觀上的感受簡單分享一下對於哪些做框架選型的時候權當一個參考

  主要參考的框架包括CodeIgniterCakePHPZendFrameworkSymfony我對很多框架也沒有認真使用只是簡單試用了一下可能很多看法不成熟或者是錯誤的請大家指正一起成長

  CodeIgniter

  優點

   配置簡單全部的配置使用PHP腳本來配置執行效率高具有基本的路由功能能夠進行一定程度的路由具有初步的Layout功能能夠制作一定程度的界面外觀數據庫層封裝的不錯具有基本的MVC功能

   快速簡潔代碼不多執行性能高框架簡單容易上手學習成本低文檔詳細自帶了很多簡單好用的library框架適合小型應用

  缺點

   把Model層簡單的理解為數據庫操作

   框架略顯簡單只能夠滿足小型應用略微不太能夠滿足中型應用需要

  評價

  總體來說拿CodeIgniter來完成簡單快速的應用還是值得同時能夠構造一定程度的layout便於模板的復用數據操作層來說封裝的不錯並且CodeIgniter沒有使用很多太復雜的設計模式執行性能和代碼可讀性上都不錯至於附加的 library 也還不錯簡潔高效

  CakePHP

  優點

   CakePHP是最類似於RoR的框架包括設計方式數據庫操作的Active Record方式設計層面很優雅沒有自帶多余的 library所有的功能都是純粹的框架執行效率還不錯數據庫層的 hasOne hasMany 功能很強大對於復雜業務處理比較合適路由功能配置功能還不錯自動構建腳手架(scaffold)很強大適合中型應用基本實現過了MVC每一層具有自動操作命令行腳本功能

   文檔比較全在國內推廣的比較成功大部分都知道CakePHP學習成本中等

  缺點

   CakePHP非常嚴重的問題是把Model理解為數據庫層操作嚴重影響了除了數據庫之外的操作能力

   CakePHP的cache功能略顯薄弱配置功能稍嫌弱CakePHP不適合大型應用只適合中型應用小型應用來說略微的學習成本高了點

  評價

  總體來說CakePHP框架代表了PHP框架很重要的一個時代和代表並且目前發揮著很重要的作用不少自己寫的框架都模仿了CakePHP的方式是個裡程碑式的產品CakePHP透露著RoR的敏捷開發方式和把數據庫操作認為是唯一Model的設計思想作為開發快速應用和原型是絕好的工具同樣用來做Web網站的開發框架也是值得選擇的

  Zend Framework

  優點

   官方出品自帶了非常多的 library框架本身使用了很多設計模式來編寫架構上很優雅執行效率中等MVC設計中比較簡潔具有路由功能配置文件比較強大(能夠處理XML和php INI)各種 library 很強大是所有PHP框架中各種功能最全面的包括它不僅是一個框架更是一個大類庫(取代PEAR)這是它的主要特色能夠直觀的支持除數據庫操作之外的Model層(比 CodeIgniter 和 CakePHP 強)並且能夠很輕易的使用Loader功能加載其他新增加的ClassCache功能很強大從前端Cache到後端Cache都支持後端Cache支持MemcacheAPCSQLite文件等等方式數據庫操作功能很強大支持各種驅動(適配器)

   文檔很全在國內社區很成熟並且目前不少Web 網站在使用學習成本中等

  缺點

   MVC功能完成比較弱View層簡單實現(跟沒實現一樣)無法很強大的控制前端頁面

   沒有自動化腳本創建一個應用包括入口文件全部必須自己手工構建入門成本高

   Zend Framework 作為一個中型應用框架問題不大也能夠勉強作為大型應用的框架但是作為一個很成熟的大型PHP框架來說還需要一些努力

  評價

  作為官方出品的框架Zend Framework的野心是可以預見的想把其他框架擠走同時封裝很多強大的類庫能夠提供一站式的框架服務並且他們的開發團隊很強大完全足夠有能力開發很強大的產品出來所以基本可以確定的是Zend Framework前途無量如果花費更多的時間去完善框架同樣的Zend Framework架構本身也是比較優雅的說明Zend官方是有很多高手的設計理念上比較先進雖然有一些功能實現的不夠完善比如View層自動化腳本等等這些都有賴於未來的升級總體來說Zend Framework是最值得期待的框架當然你目前要投入你的項目中使用也是完全沒問題的

  Symfony

  優點

   Symfony 是我了解的PHP框架中功能最強大的而且我使用時間比較長但是很多功能還是沒有挖掘出來它完整實現了MVC三層封裝了所有東西包括 $_POST$_GET 數據異常處理調試功能數據檢測包含強大的緩存功能自動加載Class(這個功能很爽)強大的in國家化支持具有很強大的view層操作能夠零碎的包含單個多個文件非常強大的配置功能使用yml配置能夠控制所有框架和程序運行行為強大到讓人無語能夠很隨意的定義各種自己的class並且symfony能夠自動加載(auto load)這些class能夠在程序中隨意調用包含強大的多層級項目和應用管理Project > Application > Module > Action能夠滿足一個項目下多個應用的需要並且每層可以定義自己的類庫配置文件layout非常強大的命令行操作功能包括建立項目建立應用建立模塊刷新緩存等等

   Symfony絕對是開發大型復雜項目的首選因為使用了Symfony將大大節約開發成本並且多人協作的時候不會出現問題在Project級別定義好基礎Class以後任何模塊都能夠重用大大復用代碼

  缺點

   數據庫操作model采用了重量級的propel和creole不過在我測試的版本中已經把他們移到了addon裡可用可不用

   緩存功能無法控制每次開發調試總是緩存需要執行 symfony cc symfony rc 來清除和重建緩存

   效率不是很高特別是解析模板和讀取配置文件的過程花費時間不少

   學習成本很高並且國內沒有成熟的社區和文檔連中文手冊都沒有相應的要掌握所有功能需要花費比較多的時間

  評價

  Symfony絕對是企業級的框架唯一能夠貌似能夠跟Java領域哪些強悍框架抗衡的東西強悍的東西自然學習復雜但是相應的對項目開發也比較有幫助自然是推薦復雜的項目使用Symfony來處理覺得是值得後期的維護成本比較低復用性很強相應的如果使用Symfony的應該都是比較復雜的互聯網項目那麼相應的就要考慮關於數據庫分布的問題那麼就需要拋棄Symfony自帶的數據庫操作層需要自己定義當然了Symfony支持隨意的構造model層

  總結

  以上數款框架各有特色而且都是開源項目不過框架針對的項目不一樣一般來說 CodeIngiter 比較適合小型項目CakePHP 和 Zend Framework 比較適合中型項目Symfony 比較適合大型重量級項目在項目選型的時候要充分考慮框架的可以定制性擴展性因為每個項目都無法確定你是否會隨著需求的變化進行改變

  相對來說Zend Framework 和 Symfony 應對變化的能力比較強特別是能夠隨意定制 model 層的Class能夠非常方便增加自己業務或者數據處理類我是個人比較推薦在中大型項目中使用的框架

  CodeIngiter 和 CakePHP 在中小型項目中同樣能夠發揮重大作用快速開發和原型構建非常適合目標不清晰的原型項目的開發

  當然了也許自己寫一個框架更適合

  泛泛的評價了幾款框架估計很多東西都沒有說到點子上大家就姑且看之同樣歡迎提出看法指正!


From:http://tw.wingwit.com/Article/program/PHP/201311/21441.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.