毫无疑问,Web框架技能在近几年已经得到了突飞年夜进的发展和遍及,在过去几年里,框架技能的普遍经历了比较大的完善过程,很大一部分可以归因于RubyonRails,以及在其他编程措辞中流露出的MVC框架思想。
如果你是一个PHP忍者,而不是一个铁杆的Ruby追随者,你大概会惊奇市情上已经有这么多的框架,哪一个才是适宜你的。当然回答和个问题取决于的诸多成分,本日我们将会回顾一下这个范例的问题,如何为你的下一个运用系统选择适宜你的PHP框架。
同时我们也来看一下比较盛行的PHP框架,比较一下他们的差异,这样可以帮你自己做出明智的选择,找到最适宜你项目的框架。

明确你的需求
在你决定为你的项目选择一个框架之前,你当先理解须要,需求和理解一些开拓团队幕后的事情,我们总结出了如下几个问题,在开始下一步之前你可以试着问问自己。
你的运用程序紧张集中于办理哪些问题?
你的运用可以是一个电子商务平台,一个社交网站,共享平台或者活动目录,举例来说,如果你正在构建一个电子商务网站,你大概更希望选用一些具有用于处理信用卡和交易会话的成熟的扩展函数库的框架。另一方面,如果是一个轻量级的平台(比如说微博类系统),则你大概更该当看重快速的扩展和跨做事器跨数据的支撑访问能力,为了实现负载均衡和快速连接访问。
你的主机运行环境将是什么?
有些分外的框架会须要利用到一些非默认的其它PHP扩展或者软件安装在做事器上,比如,有些框架的数据抽象层必须哀求通过PDO来实现访问,而非直接调用更底层的MySQL或MySQLi,或者有些类似wiki类的程序的图像压缩和处理功能每每须要利用到ImageMagick或Graphiviz这些外部程序。而这些扩展大概并不会被所有的共享主机环境(虚拟主机)支持,此外即便是一个轻量级的小型框架,而且自我集成了所有所需的函数库并且也具有良好的可移植性温柔应性,这样的框架运用在处理数据密集型的操作或者大型数据处理的系统时,性能又会成为它的紧张瓶颈。
你的开拓职员或团队的上风和劣势在于什么?
如果你是个项目经理,一个主要的事情是理解清楚你的详细开拓职员他们的能力和弱势,由于他们是真的闷头干活儿人,以是大概你可以选择一些更加面向开拓职员友好的随意马虎上手的框架。当然这个问题的大概并不是影响决定是否采取一个框架的决定性成分(不断地哀求自己和团队学习新的技能总是好的),但着绝对是一个会影响到你的韶光表、预算和安全等多方面成分的主要考量条件。
如何在“高耦合性”还是“低耦合性”的框架中做出选择?
如果从框架产品自身的耦合性来将目前主流的php框架产品分为高耦合性和低耦合性两类。低耦合性的框架看起来更像是一个丰富的函数库和逻辑封装的抽象层,乃至有些好的框架自身便是PHP的一个高等扩展组件,比如PDO,它绝对算得上是一个数据访问的框架也是抽象层。还有一些其他值得一提的低耦合性框架,比如ZendFramework,CakePHP,以及海内开拓的ThinkPHP都属于这个范畴。如果你将接手的项目历史问题比较多,并且对UI的自定义比较高,你恐怕须要一个低耦合性的框架来知足你灵巧的需求。
另一方面是一些高耦合性框架的代表,比如一些由CRM衍生而来框架类似Drupal,Joomla,还有直接便是为了高耦合性而开拓的OpenbizCubi框架,海内小范围盛行的框架还有普元等。这些框架的最精良的特点是可以让你完备只集中于实现你的核心业务逻辑,你乃至不用去管如何实现UI和用户会话管理这些根本特性,你只须要把你的代码和它们供应的接口规范进行“连接”就可以了。如果你卖力的项目是一个新的项目,你肯定不肯望把大部分的韶光都花在实现根本业务逻辑上,比如可能是为客户公司开拓一套“停车场管理系统”,还是选择类似OpenbizCubi这样的框架,在其之上直接去实现你的业务逻辑是最对得起你的韶光预算和投资回报率的。
目前主流的开拓框架
现在我们已经对你将要开拓的运用程序和你的开拓团队有了足够的理解和认识,那么接下来让我们来测试几款比较盛行的框架和他们所能供应给我们的功能特性吧。
OpenbizCubiPHP开拓框架
官方网址:http://openbiz.me/
这显然是一个高耦合性的框架的代表,有点让开发职员“拎包入住”快捷酒店一样的的觉得。OpenbizCubi是一个运用平台式的开拓框架。虽然与浩瀚更加耳熟能详的框架比较OpenbizCubi仍旧是一匹黑马,但是还是一个十分值得推举的框架。它自身基于ZendFramework构建,但是拥有自己独特的基于元数据的MVC和ORM逻辑,并采取Smarty和PHP模板作为紧张UI的模板引擎,以是如果你是Zend框架的玩家,别担心,OpenbizCubi的代码也会同样让你很随意马虎上手。
它不同于其他传统意义上的PHP框架,它具有一个类似JAVA的元数据引擎,可以通过XML的办法来“描述”大多数工具,乃至通过XML的描述就可以实现数据的CRUD(增删读改)这些操作。如果你的业务需求仅仅是要实现一些大略的数据CRUD操作,你乃至不须要去写什么PHP代码,XML就可以全部搞定。而你的PHP功夫可以通过他的Plugin-Service办法用于集中在实现某些分外的业务逻辑上。
OpenbizCubi目前还有一个叫做OpenbizAppbuilder的超级好用的代码天生工具,对付还不熟Openbiz的XML元数据的开拓职员来说,Appbuilder绝对是一个可以帮助你快速上手的利器,他通过图形界面的天生引导来帮你自动创建数据工具、表单工具、嵌入式做事,乃至全体运用程序的雏形。按Openbiz的官方先容来说,你只须要思考清楚你的运用程序的业务逻辑,剩下的代码事情就交给OpenbizAppbuilder来帮你搞定吧。
CakePHP开拓框架
官方网址:http://cakephp.org/
如果你仍旧须要编写面向PHP4兼容的代码,CakePHP将是一个非常不错的选择,在PHP4&5的MVC式框架列表里面,CakePHP都曾经是最盛行的。它还供应了很多种路子的技能支持(谈论组、留言板、IRC等)还有精良的教程。CackePHP是个很随意马虎上手的框架,但是你并不随意马虎在短短几周的韶光就完备节制它。
ZendFramework框架
官方网址:http://framework.zend.com
ZendFramework是面对一些较有履历的开拓者和从底层构建一些企业级运用程序而设计的。(例如:流传宣传面向企业运用而设计的OpenbizCubi便是基于ZendFramework框架之上而构建的。)该框架是高度模块化的。这意味着你可以按你的实际须要来引用Zend的代码。有些函数库乃至可以很容的被提取出来单独利用(例如Zend_Gdata,这也是个低耦合性的特点)利用Zend框架,你不必非要屈服它的MVC架构,(虽然你最好能这么做),并且它还供应了许多内建的高等功能用于完成与现有的web做事整合,多措辞化和实现单元测试这些任务。
CodeIgniter
官方网址:http://codeigniter.org.cn
CodeIgniter是一个PHP5.2+的MVC框架,它体积小巧切具有丰富的文档资源。常日被称为“初学者框架”,由于它相对随意马虎试用和较短的学习曲线,此外CodeIgniter也是十分灵巧和强大的。该框架拥有一个非常弘大的社区支持。并且在社区里面很随意马虎找到大量的CI函数库,你可以大胆的梦想,大概你正须要做的事情在社区的某个互换,某个人已经把它实现了。
Symfony
官方网址:http://symfony.com/
Symfony是最古老的PHP框架之一(相信你从他的网站风格上也创造这一点了),他同样也是转为企业级Web运用程序而设计的。然而,对付他所能供应的所有动力和性能而言,它只拥有很小的体积并且非常随意马虎配置在大多数php的主机环境中。由于他的年头最长久,你会很随意马虎找到许多关于Symfony的教程、布告等资料,对付新手来说,这绝对是件好事儿。
Symfony利用命令行代码天生工具来为项目快速天生所需的代码,这种办法大概对付某些开拓职员来说是前所未闻的(在那个年头,大概吧。。。)然后,他可以帮助你在很短的韶光里完成代码并是他们可以运行。Symfony的网站上手机了大量的教程和范例代码,来帮助你熟习节制他们。
YiiFramework
官方网址:http://www.yiiframework.com
这也是近几年才涌现的一匹黑马。
本文转载自techweb!
本站文章除注明转载外,均为本站原创或翻译