Posted by:
努力记

努力记,通过记录,计划,让自己的努力可以触碰彩虹!

6,205

主流PHP框架重要功能

  • 2014-08-29
  • 暂无评论
针对目前主流的PHP框架进行分析,分析重点在于个个框架中最有特点的设定
目前主流的PHP框架有:Thinkphp,Yii,ZendFramework,Laravel,Yaf(Yet Another Framework),CI(CodeIgniter),Kohana,Symfony,Phalcon(PHP的框架太多了,就先从这几个开始总结吧)
从性能来说:Yaf和Phalcon是基于C扩展的,在底层进行性能优化
目前最为强大的:Laravel,代码实现优雅,函数体符合语义定义,让使用者对接口功能一目了然
这里从功能开始划分:
自动加载类:通常都是符合某种命名规则,则可以自动加载,Thinkphp在这里有很明显的限制,但Laravel实现的又过于灵活,大多数都支持,但个个框架实现的思想不一致
MVC:我个人不太喜欢强制绑定MVC结构的框架,如Thinkphp,CodeIgniter,这会导致只能处理单业务架构,并会随着业务的扩展将整个代码显的臃肿,没办法进行划分(因为从刚开始就被限制了),并且还会不断的添加新功能用来展示对MVC的扩展,我觉得是本末倒置了。但处理小型项目,MVC不得不说是快速的,不用对项目进行预先架构划分,因为需求足够的小
数据库迁移:Laravel,CI,配合自动化部署工具,能实现如何代码的版本控制,这点在Django(Python的框架)得到的完整的体现。
完整的面向对象:看Laravel就像在看Java的框架一样,提供了完整的设计但有不失灵活,整个结构中对功能实现了单一职责,Facades对象实现单例解耦模式(在IoC基础上)
 
本地化:多语言这个功能还是需要架构在框架内提现比较好,因为问题涉及到从request->respond的完整过程中,但又不能只是文字功能的替换,因为我遇到过不同语言在某些特定页面需要不同的功能!但只要能在框架中提供功能用于判断当前请求的语言环境即可,Yii,CI,Laravel
还有框架单纯为RestFul而生:个人觉得就和强制关联MVC的框架一样,处理特定应用更为合适,Guzzle,Flight
没有历史包袱:FuelPHP,Laravel,都是直接在PHP5.3基础上开发的,PHP5.3扩展了很多功能:
路由:个人认为是每个框架最核心的功能,能展现框架的基本扩展能力,这块的功能限制将影响到框架的整体扩展,Restful及MVC框架的提现也是在这里处理的
事件:Laravel,Kohana,Yii都提供对于事件的支持,事件的操作方式也和js类似,特别是
ActiveRecord(ORM对象关系映射):目前很多框架都引用该功能,在一定程度上的确能简化数据库操作对象
特点:CI的脚手架,钩子,thinkphp的应用编译、调试模式,Laravel的Ioc反转控制,Yii的组件及表单模型,Symfony提供Bundle
工具集:这块我倒是觉得无伤大雅,随时都能扩展,一般框架都提供了扩展能力
根据项目需求的确需要挑选下框架,但真正重要的还是对框架的理解,如果不能对框架有充分理解,重复造轮子的事会时常发生,review code也是避免该类问题的方式,架构师需要对框架有思想层面的了解,对于开发人员提供足够的建议
特别关注:CI,Laravel,Phalcon!~


back up ↑

无觅相关文章插件,快速提升流量