国外主流PHP框架斗劲

    添加时间:2013-7-25 点击量:

    比来简单的应用了今朝在国内用的斗劲多的几个主流国外PHP框架(不包含国内框架),大致对这些框架有个直观上的感触感染,简单分享一下,对于哪些做框架选型的时辰,权当一个参考。
    首要参考的框架包含:CodeIgniter、CakePHP、ZendFramework、Symfony


    申明:我对很多框架也没有卖力应用,只是简单试用了一下,可能很多见地不成熟或者是错误的,请大师斧正,一路成长。 :-)



    【 CodeIgniter 】


    官方网站:
    中文网站:
    中文手册:
    视频教程:
    测试版本: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 】


    官方网站:
    中文网站:
    权势巨子指南:
    进修参考:
    测试版本:symfony-1.0.13


    长处:
    1. Symfony 是我懂得的PHP框架能强大的,并且我应用时候斗劲长,然则很多功能还是没有发掘出来;它完全实现了MVC三层,封装了所有器材,包含 ¥_POST,¥_GET 数据,异常处理惩罚,调试功能,数据检测;包含强大的缓存功能,主动加载Class(这个功能很爽),强大的i18n国度化支撑;具有很强大的view层操纵,可以或许零散的包含单个多个文件;很是强大的设备功能,应用yml设备可以或许把握所有框架和法度运行行动,强大到让人无语;可以或许很随便的定义各类本身的class,并且symfony可以或许主动加载(auto load)这些class,可以或许在法度中随便调用;包含强大的多层级项目和应用经管:Project --> Application --> Module --> Action,可以或许满足一个项面前目今多个应用的须要,并且每层可以定义本身的类库,设备文件,layout;很是强大的号令行操纵功能,包含建树项目、建树应用、建树范块、刷新缓存等等;
    2. Symfony绝对是开辟大型错杂项目标推荐,因为应用了Symfony,将大大节俭开辟本钱,并且多人协作的时辰,不会呈现题目,在Project级别定义好根蒂根基Class今后,任何模块都可以或许重用,大大复用代码


    毛病:
    1. 数据库操纵model采取了重量级的propel和creole,不过在我测试的版本中已经把他们移到了addon里,可用可不消
    2. 缓存功能无法把握,每次开辟调试老是缓存,须要履行 symfony cc, symfony rc 来清除和重建缓存;
    3. 效力不是很高,希罕是解析模板和读取设备文件的过程,花费时候不少;
    4. 进修本钱很高,并且国内没有成熟的社区和文档,连中文手册都没有,响应的要把握所有功能,须要花费斗劲多的时候


    评价:
    Symfony绝对是企业级的框架,独一可以或许貌似可以或许跟Java范畴哪些强悍框架对抗的器材;强悍的器材,天然进修错杂,然则响应的对项目开辟也斗劲有帮助,天然是推荐错杂的项目应用Symfony来处理惩罚,感觉是值得,后期的保护本钱斗劲低,复用性很强。响应的若是应用Symfony的应当都是斗劲错杂的互联网项目,那么响应的就要推敲关于数据库分布的题目,那么就须要扔掉Symfony自带的数据库操纵层,须要本身定义,当然了,Symfony支撑随便的机关model层。


     



    【 总评 】


    以上数款框架,各有特点,并且都是开源项目,不过框架针对的项目不一样,一般来说 CodeIngiter 斗劲合适小型项目,CakePHP 和 Zend Framework 斗劲合适中型项目,Symfony  斗劲合适大型重量级项目,在项目选型的时辰,要充沛推敲框架的可以定制性、扩大性,因为每个项目都无法断定你是否会跟着需求的变更进行改变。


    相对来说,Zend Framework 和 Symfony 应对变更的才能斗劲强,希罕是可以或许随便定制 model 层的Class,可以或许很是便利增长本身营业或者数据处理惩罚类,我是小我斗劲推荐在中大型项目中应用的框架。CodeIngiter 和 CakePHP 在中小型项目中同样可以或许阐扬重鸿文用,快速开辟和原型构建,很是合适目标不清楚的原型项目标开辟。懂得一个框架好的体式格式就是应用它,进修它好的体式格式就是看视频。:-)


    仁者见仁,智者见智,在项目遴选框架的时辰,请先卖力查核项目标需乞降将来的变更,然后选择合适的框架,让项目开辟速度和后期保护性获得一个公道的均衡,当然了,也许,本身写一个框架更合适。 :-)


    泛泛的评价了几款框架,估计很多器材都没有说到点子上,大师就姑且看之,同样迎接提出见地斧正!

    无论对感情还是对生活,“只要甜不要苦”都是任性而孩子气的,因为我们也不完美,我们也会伤害人。正因为我们都不完美,也因为生活从不是事事如意,所以对这些“瑕疵”的收纳才让我们对生活、对他人的爱变得日益真实而具体。—— 汪冰《世界再亏欠你,也要敢于拥抱幸福》
    分享到: