热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2013年最流行的开源PHP框架排行榜(组图)

ZendFramework是面对一些较有经验的开发者和从底层构建一些企业级应用程序而设计的。(例如宣称面向企业应用而设计的OpenbizCubi就是基于ZendFramework框架之上而构建的。)

目录:

1框架发展背景

2明确你的需求

2.1你的应用程序主要集中于解决哪些问题?

2.2你的主机运行环境将是什么?

2.3你的开发人员或团队的优势和劣势在于什么?

2.4如何在“高耦合性”还是“低耦合性”的框架中做出选择?

3目前主流的开发框架

3.1OpenbizCubiPHP开发框架

3.2CakePHP开发框架

3.3ZendFramework框架

3.4CodeIgniter

3.5Symfony

3.6YiiFramework

框架发展背景

毫无疑问,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/

下载地址: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

 

 


推荐阅读
  • 微服务架构详解及其入门指南
    本文详细介绍了微服务的基本概念、发展历程、与传统架构的区别及优势,并探讨了适合采用微服务架构的场景。此外,文章还深入分析了几个主流的微服务开发框架,特别是Spring Cloud的组成和特点。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文讲述了一位80后的普通男性程序员,尽管没有高学历,但通过不断的努力和学习,在IT行业中逐渐找到了自己的位置。从最初的仓库管理员到现在的多技能开发者,他的职业生涯充满了挑战与机遇。 ... [详细]
  • 本文探讨了Go语言(Golang)的学习价值及其在Web开发领域的应用潜力,包括其独特的语言特性和为什么它是现代软件开发的理想选择。 ... [详细]
  • MHA 架构详解与实践
    MHA(Master High Availability)是一种高效的主从切换解决方案,确保了数据的一致性和系统的高可用性。本文将详细介绍MHA的功能、主从切换流程以及配置步骤,并探讨其优缺点。 ... [详细]
  • 本文探讨了缓存系统中的两个关键问题——缓存穿透与缓存失效时的雪崩效应,以及这些问题的解决方案。此外,文章还介绍了数据处理、数据库拆分策略、缓存优化、拆分策略、应用架构演进及通信协议的选择等内容。 ... [详细]
  • 本文探讨了Flutter和Angular这两个流行框架的主要区别,包括它们的设计理念、适用场景及技术实现。 ... [详细]
  • 2020年腾讯PCG后端开发实习生面试经历分享
    本文详细记录了2020年腾讯平台与内容事业群(PCG)后端开发实习生岗位的面试过程,包括初试和复试的主要内容和技术考察点。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • 本文详细探讨了 Java 中 Daemon 线程的特点及其应用场景,并深入分析了 Random 类的源代码,帮助开发者更好地理解和使用这些核心组件。 ... [详细]
  • 腾讯发布全新Android原生UI框架,开源社区再添强援
    近日,腾讯宣布开源了一款全新的Android原生UI框架,旨在提升开发者的工作效率与用户体验。这一举动再次展示了腾讯对开放源代码社区的支持。 ... [详细]
  • jquery java 文件上传_jQuery文件上传
    插件描述:这是一个文件上传的展示,看很多插件,并不满意就自己写了一个,可能兼容性不是很好,没有准确进行测试过& ... [详细]
  • 现在的新手程序猿,动不动就是框架,就连外面培训的也是框架,我就问一句,没了框架是不是就啥也不会了 ... [详细]
  • 本文将详细介绍如何配置并整合MVP架构、Retrofit网络请求库、Dagger2依赖注入框架以及RxAndroid响应式编程库,构建高效、模块化的Android应用。 ... [详细]
  • 本文为初学者提供了一条清晰的学习路线,帮助他们逐步成长为优秀的Web开发人员。通过十个关键步骤,涵盖从基础到高级的各个方面,确保每位学习者都能找到适合自己的学习方向。 ... [详细]
author-avatar
phpyi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有