最近簡單的使用了目前在國內用的比較多的幾個主流國外php框架(不包括國內框架),大致對這些框架有個直觀上的感受,簡單分享一下,對於哪些做框架選型的時候,權當乙個參考。
主要參考的框架包括:codeigniter、cakephp、zendframework、symfony
說明:我對很多框架也沒有認真使用,只是簡單試用了一下,可能很多看法不成熟或者是錯誤的,請大家指正,一起成長。 :-)
【 codeigniter 】
官方**:
中文**:
中文手冊:/user_guide
測試版本:codeigniter_1.6.1
優點:1. 配置簡單,全部的配置使用php指令碼來配置,執行效率高;具有基本的路由功能,能夠進行一定程度的路由;具有初步的layout功能,能夠製作一定程度的介面外觀;資料庫層封裝的不錯,具有基本的mvc功能
2. 快速簡潔,**不多,執行效能高,框架簡單,容易上手,學習成本低,文件詳細;自帶了很多簡單好用的library,框架適合小型應用
缺點:1. 把model層簡單的理解為資料庫操作
2. 框架略顯簡單,只能夠滿足小型應用,略微不太能夠滿足中型應用需要
評價:總體來說,拿codeigniter來完成簡單快速的應用還是值得,同時能夠構造一定程度的layout,便於模板的復用,資料操作層來說封裝的不錯,並且codeigniter沒有使用很多太複雜的設計模式,執行效能和**可讀性上都不錯。至於附加的 library 也還不錯,簡潔高效。
【 cakephp 】
官方**:
中文手冊:
測試版本:cake_1.1.19.6305
優點:1. cakephp是最類似於ror的框架,包括設計方式,資料庫操作的active record方式;設計層面很優雅,沒有自帶多餘的 library,所有的功能都是純粹的框架,執行效率還不錯;資料庫層的 hasone, hasmany 功能很強大,對於複雜業務處理比較合適;路由功能,配置功能還不錯;自動構建腳手架(scaffold)很強大;適合中型應用;基本實現過了mvc每一層;具有自動操作命令行指令碼功能;
2. 文件比較全,在國內推廣的比較成功,大部分都知道cakephp,學習成本中等
缺點:1. cakephp非常嚴重的問題是把model理解為資料庫層操作,嚴重影響了除了資料庫之外的操作能力
2. cakephp的cache功能略顯薄弱,配置功能稍嫌弱;cakephp不適合大型應用,只適合中型應用,小型應用來說略微的學習成本高了點
評價:總體來說cakephp框架代表了php框架很重要的乙個時代和代表,並且目前發揮著很重要的作用,不少自己寫的框架都模仿了cakephp的方式,是個里程碑式的產品;cakephp透露著ror的敏捷開發方式和把資料庫操作認為是唯一model的設計思想,作為開發快速應用和原型是絕好的工具;同樣,用來做web2.0**的開發框架,也是值得選擇的。
【 zend framework 】
官方**:
中文手冊:
測試版本:zendframework-1.5.0
優點:1. 官方出品,自帶了非常多的 library,框架本身使用了很多設計模式來編寫,架構上很優雅,執行效率中等;mvc設計中,比較簡潔,具有路由功能,配置檔案比較強大(能夠處理xml和php ini),各種 library 很強大,是所有php框架中各種功能最全面的,包括它不僅是乙個框架,更是乙個大類庫(取代pear),這是它的主要特色;能夠直觀的支援除資料庫操作之外的model層(比 codeigniter 和 cakephp 強),並且能夠很輕易的使用loader功能載入其他新增加的class;cache功能很強大,從前端cache到後端cache都支援,後端cache支援memcache、apc、sqlite、檔案等等方式;資料庫操作功能很強大,支援各種驅動(介面卡)
2. 文件很全,在國內社群很成熟,並且目前不少web 2.0**在使用,學習成本中等
缺點:1. mvc功能完成比較弱,view層簡單實現(跟沒實現一樣),無法很強大的控制前端頁面
2. 沒有自動化指令碼,建立乙個應用,包括入口檔案,全部必須自己手工構建,入門成本高
3. zend framework 作為乙個中型應用框架問題不大,也能夠勉強作為大型應用的框架,但是作為乙個很成熟的大型php框架來說,還需要一些努力
評價:作為官方出品的框架,zend framework的野心是可以預見的,想把其他框架擠走,同時封裝很多強大的類庫,能夠提供一站式的框架服務,並且他們的開發團隊很強大,完全足夠有能力開發很強大的產品出來,所以基本可以確定的是zend framework前途無量,如果花費更多的時間去完善框架。同樣的,zend framework架構本身也是比較優雅的,說明zend官方是有很多高手的,設計理念上比較先進,雖然有一些功能實現的不夠完善,比如view層,自動化指令碼等等,這些都有賴於未來的公升級。總體來說zend framework是最值得期待的框架,當然,你目前要投入你的專案中使用也是完全沒問題的。
【 symfony 】
官方**:
中文**:
權威指南:/book
學習參考:
測試版本:symfony-1.0.13
主流介面測試框架對比
公司計畫系統的開展介面自動化測試,需要我這邊調研一下主流的介面測試框架給後端測試 主要測試介面 的同事介紹一下每個框架的特定和使用方式。後端同事根據他們介面的特點提出一下需求,看哪個框架更適合我們。1 介面編寫方便。2 方便除錯介面。3 支援資料初始化。4 生成測試報告。5 支援引數化。優點 缺點 ...
對比主流深度學習框架
現在的主要的框架主要是呈以上的排名分部 tensorflow theano keras lasagne caffe dsstne torch mxnet dl4j cognitive toolkit主要是有以上這十種框架。是乙個基於資料流程式設計 dataflow programming 的符號數學...
CDC主流工具對比
redhat開源的debezium是乙個將多種資料來源實時變更資料捕獲,形成資料流輸出的開源工具。它是一種cdc change data capture 工具,工作原理類似大家所熟知的canal,databus,maxwell等,是通過抽取資料庫日誌來獲取變更的。官方介紹為 筆者所在公司以postg...