浅析十款PHP开发框架的对比

PHP开发框架近来在PHP社区中成为讨论的热点,几乎每天都在推出新的框架。面对市面上超过四十种的开发框架,你很难判断究竟哪一款最适合你,尤其是在这些框架所提供的功能不尽相同的时候。

概览
以下你看到是这十款开发框架的一览表,列举了他们各自所提供的功能。
#1:
表示框架是否内建模型-视图-控制器。
#2: 表示框架是否无需修改即可支持多数据库。
#3: 表示框架是否支持对象记录映射器,通常这是ActiveRecord的封装包。
#4: 表示框架是否包含其它数据库对象,比如TableGateWay。
#5: 表示框架是否内建模板引擎。
#6: 表示框架是否缓存对象或者其他缓存机制。
#7: 表示框架是否内建校验或过滤组件。
#8: 表示框架是否内建Ajax支持。
#9: 表示框架是否内建用户验证模块。
#10: 表示框架是否包含其他模块,例如RSS feed解析器、PDF模块或其他实用模块。

Zend Framework
Zend Framework 尽管从对比表上来看它没占到什么便宜,可Zend Framework确确实实涵括了一些处理PDF文档、RSS源、在线服务(Amazon, Flickr, Yahoo)的模块,甚至更多。Zend Framework同时也包含了数个不同的数据库对象,极大地便捷了对数据库进行查询的实现,甚至免去你手写SQL查询脚本的麻烦。

当前,Zend Framework并未完全支持ORM,但是开发人员仍然陷入在是否要添加ORM层的争论中。也许在将来会实现这些功能,你就可以编写自己的ORM封装包,投稿到社区,并有机会将之整合入框架的未来版本。

Zend Framework看上去前途一片光明,而且它同时又修正了一些常见的PHP问题。也许稳定版本就可以在对比表里面表现得更出色了!

CakePHP
CakePHP是一款高级的MVC框架,自带了不多的几个模块。它可以处理大多数的数据库事务,支持Ajax个数据验证。同时,它的用户验证模块(Accsee List)也非常独特,可以针对不同的用户在访问网站不同部分时分配对应的访问权限。

尽管CakePHP的网站看上去令人犯晕,但是框架本身已经比较完整可用了。截至成文尚未见稳定版本,实在令人感到有点意外,毕竟已经开发了好几个月了,不过我猜想也许用beta版本来开发产品也未尝不可吧

Symfony Project
从对比表中不难看出,Symfony是一款极具扩展性的开发框架,它甚至完整植入了一个叫做Propel的ORM,Propel也是开源项目,并且迄今为止可能是PHP上最好的ORM解决方案。Symfony同时还整合了用于数据库抽象层的Creole和用于MVC模型层的Mojavi。由于它仅仅是重用了这些项目的源代码,而非重写,由此使得框架具备了极为强大的扩展性,这一点在表中昭然若是。

Symfony有两个缺憾,以使它不支持PHP4,这是由于需要PHP5中很多新特性的支持的结果,二是相对来说它有点复杂了。大多数任务,比方像分页,在Symfony中的时限比其他框架要复杂得多,这决不是一款简洁著称的框架。

Seagull Framework 
Seagull framework看上去相当不错,自带了很多特性。支持PHP4也对它的推广相当有利,我本人就仍在使用PHP4,况且大多数空间寄存商尚未全面支持PHP5。

不幸的是,Seagull没有提供对Ajax的支持,实在有点说不过去,不过通过Google可以毫不费力地搜索到一篇自己添加Ajax支持的教程,而且这点在将来应该会添加到框架中。

WACT - Web Application Toolkit
WACT很有潜力,框架的基件它一应俱全,像MVC、数据库对象和模板引擎,不过仅此而已。它没有任何外挂模块,同时也缺少一些内建的功能,例如Ajax、缓存、验证模块,等等。

尽管如此,WACT还是拥有最好的模板引擎,甚至可以帮助你创建自己的模板标签来扩展功能。

Prado
Prado非常独特,它提供了一些很酷的特性。它没有内建对MVC的支持(就我看来),但是它确实拥有处理大多数PHP任务的各种各样的组件,更棒的是,它实现了事件驱动脚本。例如,在一个HTML按钮上设置onClick事件链接到一个PHP函数。这点近似ASP.NET,而Prado确实包含了更多的ASP.NET组件,像GridView和Repeater Control。

仅凭对比表上的数据,Prado看似要弱于其它框架,但事实并非如此。因为Prado如此独特,尽管它得分不高,但是在实际应用中它是非常强大的。

PHP on Trax
这个框架看上其简直就是Ruby and Rails在PHP上的一个接口,它以前也确实叫做PHP on Rails。不幸的是,它的文档实在是太稀缺了,所以也很难判断这个框架究竟提供了些什么,但是文档中的确提到了ActiveRecord,所以它可能提供ActiveRecord,就像RoR。还有就是它内建了Ajax支持,从它网站上的两个演示视频中不难看出。

PHP on Trax基本上能符合使用者对框架的要求,但是它还是缺胳膊少腿,比方像验证模块和缓存模块。它也没有任何外挂模块,是以目前来说,它很初级。

ZooP Framework
ZooP Framework可以说包罗万象,对比表上一目了然,差不多该支持的都支持了,除了ORM层。更意外惊喜的是它支持PHP4,这对于它提供的这么全面的功能来说实在是太不简单了,太棒了!

ZooP还提供了内建的GUI控制,使得创建表单的工作变得异常快捷。它支持绝大多数的常用表单元素,在常规HTML里使用GUI控制的好处就是你可以将验证的逻辑操作和GUI控制紧密地结合在一起。

eZ Components
与其说ez Components是个框架,不如说是一个组件集,可能正是因为如此它并没有内建对MVC的支持。

它包括了大多数常用组件,如数据库组件和缓存组件,可还是缺少点东西。比方说,没有ActiveRecord组件和验证组件。另一方面,它提供了一些外挂组件,比如e-mail组件,但是不多,其它框架(像Zend Framework)提供的更多。 

CodeIgniter 
CodeIgniter相对来讲是个很新的框架,它的作者是ExpressionEngine的开发团队(译者注: PHP blog程序pMachine的升级换代产品,很可惜不是免费的),看上去很有潜质。不幸的是,它尚不能处理多数据库,尽管这项功能仍在开发中。

它源于Ruby on Rails,所以它提供了很多的相同功能,比如scaffolding(代码自动生成)。它的文档编得相当棒,甚至还有视频教程帮助你快速上手。 

获胜者是...
在这里我不得不非常遗憾地宣布,无人胜出。每个框架所提供的功能特性不尽相同,因此无人完胜。一如往常,最后这将取决于个人偏好和选择。我极力推荐你在作出决定前先认真仔细地研读各个框架的文档,剩下就靠你自己判断了。

就个人而言,我的确非常喜欢Zend Framework,但当我仔细研究了每个框架之后,我发现了很多有趣的功能,比方说Prado的事件,抑或Symfony的ORM封装包。

当你实在是无法决定选择哪个框架的时候,你仍可以选择像大多数人那样: 自己动手。虽然耗时费力,但是乐趣无穷。

如开始所言,一部分框架已经有了长足的更新,而我最近比较倾向于symfony,它充实的文档令到上手非常方便,但是它的庞杂也令到开发小项目,甚至像我这样的个人迷你项目的过程有点得不偿失,也许CodeIgniter的简洁在这方面已经足够。

(0)

相关推荐

  • PHP开发框架总结收藏

    开发框架WACT http://wact.sourceforge.net/老牌的PHP编程框架,实现了很多企业级的开发模式 Horde http://www.horde.org/horde/提供了一些常用类库,可以满足参数处理.数据压缩.浏览器检测.链接跟踪以及 MIME.需要PEAR类库的支持,提供了API参考. Seagull http://seagull.phpkitchen.com/ 推荐一个面向对象的PHP开发框架,使用了Pear类库,其主要特性有:运用组件方式.简化数据访问.错误处理

  • PHP开发框架kohana3 自定义路由设置示例

    由于kohana框架在国内的用户较少,而且新版与kohana2.X差别太大,加之kohana3资料多为英文.让很多对kohana感兴趣,想学的同学们只能望K兴叹.由于公司 最近转向kohana3开发(kohana3.1.0稳定版),所以我趁次机会,认真看了下官方的资料.获益良多,借个人小站,分享给大家.今天呢,就说下kohana的路由设置. 再次说下,我用的是ko3.1.0与ko3有差别的. 其实呢,kohana3的路由设置,很简单.打开application文件下的bootstrap.php,

  • PHP开发框架kohana中处理ajax请求的例子

    今天分享的是在kohana中处理页面的ajax请求.2步搞定.前提是你的kohana框架已经可以正确运行了,注意下. 1.页面发出请求. 现在主流的javascript框架非jQuery莫属.jQuery对ajax请求也作了封装,这里就以jQuery为例来写个.demo是获取后台json串,并且用each处理.代码大部分是从jqapi搞来的,准确也方便. $.ajax({ url: "/test/json",//test是控制器,json是action,带/是相对站点根目录的意思 da

  • 2014年最新推荐的10款 PHP 开发框架

    PHP去年发生了翻天覆地的变化.似乎每个人对于一个好的框架应该是什么样子都有自己的想法,但话又说回来,不同的框架适用于不同类型的项目,没有什么框架是万能的. 优秀的 PHP 框架可以帮助开发者构建干净整洁和结构化的 Web 开发,同时也加快了创建和维护 Web 应用的速度.下面介绍本年度最佳的10款 PHP 开发框架 Laravel 这款可能是现在最受欢迎的 PHP 框架,Laravel 非常强大,而且很高雅,易于学习和使用.非常值得一试! → 更多信息/下载 Flight Flight 是一个

  • 国产PHP开发框架myqee新手快速入门教程

    一.环境. 笔者的环境是win7 32bit 旗舰版.用的xampp1.7.4(1.8.x版的php版本太高,个人觉得php 5.3X更实用些)+mq最新版.重点是配置虚拟机, 参考了http://www.jb51.net/article/52123.htm 本机xampp安装在D盘,给出我的配置:虚拟机配置文件路径 D:\xampp\apache\conf\extra\httpd-vhosts 复制代码 代码如下: #mq <VirtualHost *:80>  DocumentRoot &

  • 浅析十款PHP开发框架的对比

    PHP开发框架近来在PHP社区中成为讨论的热点,几乎每天都在推出新的框架.面对市面上超过四十种的开发框架,你很难判断究竟哪一款最适合你,尤其是在这些框架所提供的功能不尽相同的时候. 概览 以下你看到是这十款开发框架的一览表,列举了他们各自所提供的功能. #1: 表示框架是否内建模型-视图-控制器. #2: 表示框架是否无需修改即可支持多数据库. #3: 表示框架是否支持对象记录映射器,通常这是ActiveRecord的封装包. #4: 表示框架是否包含其它数据库对象,比如TableGateWay

  • 推荐值得学习的12款python-web开发框架

    最近JETBRAINS发布了目前最受欢迎的python-web开发框架,可以看到最受欢迎的还是Django和Flask,那么本文就对上榜的12个框架进行分类整理,一起来看看吧! 全栈框架 Django Pyramid TurboGears Web2py 微型框架 Flask Bottle CherryPy Falcon Hug FastAPI 异步框架 Sanic Tornado 其他 Dash Django GitHub stars:47078 Django是高水准的Python编程语言驱动的

  • 分享十款最出色的PHP安全开发库中文详细介绍

    1. PHP入侵检测系统 PHP IDS(即PHP-入侵检测系统)是一套易于使用.结构良好.速度出色且专门面向PHP类Web应用程序的先进安全层.这套入侵检测系统既不提供任何缓和及杀毒机制,也不会对恶意输入内容进行过滤,其作用单纯为识别出攻击者们针对站点进行的恶意活动.并以大家需要的方式作出及时提醒.凭借着一整套经过实践检验及相当严格的过滤规则,该检测系统会针对任何攻击活动给出一个影响评级数值,从而帮助用户更轻松地了解应如何应对当前出现的黑客攻击.具体应对方式多种多样,包括简单将日志纪录通过紧急

  • 再推荐十款免费的php开发工具

    下面介绍10个免费.强大的PHP编辑器/开发工具.这些编辑器拥有调试器.增量执行PHP脚本.查看每一行的所有变量值等功能. 1) Notepad ++ Notepad++是一款非常有特色的编辑器,是开源软件,可以免费使用.支持的语言: C, C++, Java , C#, XML, HTML, PHP, Javascript!  功能有: 1. Notepad内置支持多达 27 种语法高亮度显示(囊括各种常见的源代码.脚本,值得一提的是,完美支持.nfo 文件查看),也支持自定义语言: 2. N

  • 推荐十款免费 WordPress 插件

    2015必备wordpress插件列表.为了增强wordpress站点,一些优秀有效的免费wordpress 插件是必不可少的. WordPress 插件用于提升 wordpress 站点的功能.正如你所知道的,wordpress 是最流行的内容管理系统(CMS)之一,所以会有许多开发者提供支持.他们开发 wordpress 插件在提高CMS功能的同时却不会降低站点的速度.现在有许多付费和免费的 wordpress 插件,但对于你们中的大多人来说要选择哪个插件仍是个问题.所以我在这里尽量简述下一

  • 浅析Python 读取图像文件的性能对比

    使用 Python 读取一个保存在本地硬盘上的视频文件,视频文件的编码方式是使用的原始的 RGBA 格式写入的,即无压缩的原始视频文件.最开始直接使用 Python 对读取到的文件数据进行处理,然后显示在 Matplotlib 窗口上,后来发现视频播放的速度比同样的处理逻辑的 C++ 代码慢了很多,尝试了不同的方法,最终实现了在 Python 中读取并显示视频文件,帧率能够达到 120 FPS 以上. 读取一帧图片数据并显示在窗口上 最简单的方法是直接在 Python 中读取文件,然后逐像素的分

  • PHP的开发框架的现状和展望

    PHP开发框架的现状和展望 /google 的广告条--> 引言: 随着Ruby on Rails的火爆,PHP这个流行的Web应用脚本语言也出现了大量的新一代开发框架.与此同时,国内PHP开发者也开始紧跟国外发展,推出了不同的开发框架. Ruby on Rails催生变革 在RoR流行之前,PHP领域也有不少开发框架,例如Mojavi.WACT.PHPMvc和Seagull等.这些框架虽然也采用了MVC模式.数据库抽象层等技术.但由于当时PHP本身不像现在这样流行,所以这些框架都没有得到大量应

  • ASP.NET开发中经常用到10款工具软件介绍

    所谓工欲善其事,必先利其器,老祖宗留下来的话,还是很有道理滴,一款好的工具,可以帮我们提高工作效率,让我们快速完成开发任务. 下面让我一一介绍,如下的十款工具: 1. EditPlus:文字处理软件 EditPlus自然不必所说,想必大家都有了解,它是一款功能强大的文字处理软件.它可以充分的替换记事本,它也提供网页作家及程序设计师许多强悍的功能.支持 HTML.CSS.PHP.ASP.Perl.C/C++.Java.JavaScript.VBScript 等多种语法的着色显示.程序内嵌网页浏览器

  • 10款实用的PHP开源工具

    在开发工作中,使用合适的工具可以最大化地提高效率.此外,大量的开源项目也节省了开发者重复"造轮"的时间,使得开发者可以专注于业务的实现. 本文介绍10款非常实用且开源的PHP开发辅助工具,希望对你有所帮助. 1. Debugbar DebugBar是一个免费和开源的应用,能够集成至任何PHP项目中,并收集和展示分析数据.它有没有任何依赖,支持Ajax请求,包括常用开发库的通用数据采集器和收集器. 2. Monsta FTP Monsta FTP是一个基于Web并且开源的FTP应用,它采

随机推荐