毫无疑问,Web框架技术在近几年已经获得了日新月异的发展和普及,在过去几年里,框架技术的广泛经历了比较大的完善过程,很大一部分能够归因于RubyonRails,以及在其余编程语言中流露出的MVC框架思想。php
若是你是一个PHP忍者,而不是一个铁杆的Ruby追随者,你也许会惊奇市面上已经有这么多的框架,哪个才是适合你的。固然回答和个问题取决于的诸多因素,今天咱们将会回顾一下这个典型的问题,如何为你的下一个应用系统选择适合你的PHP框架。html
同时咱们也来看一下比较流行的PHP框架,比较一下他们的区别,这样能够帮你本身作出明智的选择,找到最适合你项目的框架。git
在你决定为你的项目选择一个框架以前,你当先理解须要,需求和了解一些开发团队幕后的工做,咱们总结出了以下几个问题,在开始下一步以前你能够试着问问本身。github
你的应用能够是一个电子商务平台,一个社交网站,消息共享平台或者活动目录,举例来讲,若是你正在构建一个电子商务网站,你也许更但愿选用一些具备用于处理信用卡和交易会话的成熟的扩展函数库的框架。另外一方面,若是是一个轻量级的消息平台(好比说微博类系统),则你也许更应该注重快速的扩展和跨服务器跨数据的支撑访问能力,为了实现负载均衡和快速链接访问。web
有些特殊的框架会须要使用到一些非默认的其它PHP扩展或者软件安装在服务器上,好比,有些框架的数据抽象层必需要求经过PDO来实现访问,而非直接调用更底层的MySQL或MySQLi,或者有些相似wiki类的程序的图像压缩和处理功能每每须要使用到ImageMagick或Graphiviz这些外部程序。而这些扩展也许并不会被全部的共享主机环境(虚拟主机)支持,此外即使是一个轻量级的小型框架,并且自我集成了全部所需的函数库而且也具备良好的可移植性和适应性,这样的框架应用在处理数据密集型的操做或者大型数据处理的系统时,性能又会成为它的主要瓶颈。编程
若是你是个项目经理,一个重要的事情是了解清楚你的具体开发人员他们的能力和弱势,由于他们是真的闷头干活儿人,因此也许你能够选择一些更加面向开发人员友好的容易上手的框架。固然这个问题的也许并非影响决定是否采用一个框架的决定性因素(不断地要求本身和团队学习新的技术老是好的),但着绝对是一个会影响到你的时间表、预算和安全等多方面因素的重要考量条件。php框架
若是从框架产品自身的耦合性来将目前主流的php框架产品分为高耦合性和低耦合性两类。低耦合性的框架看起来更像是一个丰富的函数库和逻辑封装的抽象层,甚至有些好的框架自身就是PHP的一个高级扩展组件,好比PDO,它绝对算得上是一个数据访问的框架也是抽象层。还有一些其余值得一提的低耦合性框架,好比ZendFramework,CakePHP,以及国内开发的ThinkPHP都属于这个范畴。若是你将接手的项目历史问题比较多,而且对UI的自定义比较高,你恐怕须要一个低耦合性的框架来知足你灵活的需求。安全
另外一方面是一些高耦合性框架的表明,好比一些由CRM衍生而来框架相似Drupal,Joomla,还有直接就是为了高耦合性而开发的OpenbizCubi框架,国内小范围流行的框架还有普元等。这些框架的最优秀的特色是可让你彻底只集中于实现你的核心业务逻辑,你甚至不用去管如何实现UI和用户会话管理这些基础特性,你只须要把你的代码和它们提供的接口规范进行“链接”就能够了。若是你负责的项目是一个新的项目,你确定不但愿把大部分的时间都花在实现基础业务逻辑上,好比多是为客户公司开发一套“停车场管理系统”,仍是选择相似OpenbizCubi这样的框架,在其之上直接去实现你的业务逻辑是最对得起你的时间预算和投资回报率的。服务器
如今咱们已经对你将要开发的应用程序和你的开发团队有了足够的了解和认识,那么接下来让咱们来测试几款比较流行的框架和他们所能提供给咱们的功能特性吧。架构
OpenbizCubiPHP开发框架
官方网址:http://openbiz.me/
下载地址:http://openbiz-cubi.googlecode.com/files/Openbiz-Cubi-Suite-3.0.7.exe
这显然是一个高耦合性的框架的表明,有点让开发人员“拎包入住”快捷酒店同样的的感受。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/
下载地址:https://github.com/cakephp/cakephp/archive/2.3.0-RC2.tar.gz
若是你仍然须要编写面向PHP4兼容的代码,CakePHP将是一个很是不错的选择,在PHP4&5的MVC式框架列表里面,CakePHP都曾经是最流行的。它还提供了不少种途径的技术支持(讨论组、留言板、IRC等)还有优秀的教程。CackePHP是个很容易上手的框架,可是你并不容易在短短几周的时间就彻底掌握它。
ZendFramework框架
官方网址:http://framework.zend.com
下载地址:http://www.zend.com/en/download/633
ZendFramework是面对一些较有经验的开发者和从底层构建一些企业级应用程序而设计的。(例如:宣称面向企业应用而设计的OpenbizCubi就是基于ZendFramework框架之上而构建的。)该框架是高度模块化的。这意味着你能够按你的实际须要来引用Zend的代码。有些函数库甚至能够很容的被提取出来单独使用(例如Zend_Gdata,这也是个低耦合性的特色)使用Zend框架,你没必要非要听从它的MVC架构,(虽然你最好能这么作),而且它还提供了许多内建的高级功能用于完成与现有的web服务整合,多语言化和实现单元测试这些任务。
CodeIgniter
官方网址:http://codeigniter.org.cn
下载地址:http://codeigniter.org.cn/download
CodeIgniter是一个PHP5.2+的MVC框架,它体积小巧切具备丰富的文档资源。一般被称为“初学者框架”,由于它相对容易试用和较短的学习曲线,此外CodeIgniter也是十分灵活和强大的。该框架拥有一个很是庞大的社区支持。而且在社区里面很容易找到大量的CI函数库,你能够大胆的梦想,也许你正须要作的事情在社区的某个交流,某我的已经把它实现了。
Symfony
官方网址:http://symfony.com/
下载地址:http://symfony.com/download
Symfony是最古老的PHP框架之一(相信你从他的网站风格上也发现这一点了),他一样也是转为企业级Web应用程序而设计的。然而,对于他所能提供的全部动力和性能而言,它只拥有很小的体积而且很是容易配置在大多数php的主机环境中。因为他的年头最长久,你会很容易找到许多关于Symfony的教程、书记等资料,对于新手来讲,这绝对是件好事儿。
Symfony使用命令行代码生成工具来为项目快速生成所需的代码,这种方式也许对于某些开发人员来讲是前所未闻的(在那个年头,也许吧。。。)而后,他能够帮助你在很短的时间里完成代码并是他们能够运行。Symfony的网站上手机了大量的教程和范例代码,来帮助你熟悉掌握他们。
YiiFramework
官方网址:http://www.yiiframework.com
下载地址:http://yii.googlecode.com/files/yii-1.1.13.e9e4a0.tar.gz
这也是近几年才出现的一匹黑马。
本文转载自techweb!
相关阅读