继续摘抄:十款PHP 开发框架比较

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

本文将引导你遍览十款最热门最流行的开发框架,并对它们作出横向比对。我会先列出一张所有框架的一览表,而后我们将对它们逐个简述。

概览
以下你看到是这十款开发框架的一览表,列举了他们各自所提供的功能。

Framework Comparison Chart

FrameworkPHP4PHP5MVC1 Multiple DB's2 ORM3 DB Objects4 Templates5 Caching6 Validation7 Ajax8 Auth Module9 Modules10
ZendFramework -YES YES YES -YES -YES YES --YES
CakePHP YES YES YES YES YES YES -YES YES YES YES -
Symfony Project -YES YES YES YES YES -YES YES YES YES -
Seagull Framework YES YES YES YES YES YES YES YES YES -YES YES
WACT YES YES YES YES -YES YES -YES ---
Prado -YES -YES --YES YES YES YES YES YES
PHP on TRAX -YES YES YES YES YES --YES YES --
ZooP Framework YES YES YES YES -YES YES YES YES YES YES YES
eZ Components -YES -YES -YES YES YES YES --YES
CodeIgniter YES YES YES YES -YES YES YES YES --YES

 

#1: Indicates whether the framework comes with inbuilt support for a Model-View-Controller setup.
#2: Indicates whether the framework supports multiple databases without having to change anything.
#3: Indicates whether the framework supports an object-record mapper, usually an implementation of ActiveRecord.
#4: Indicates whether the framework includes other database objects, like a TableGateWay.
#5: Indicates whether the framework has an inbuilt template engine.
#6: Indicates whether the framework includes a caching object or some way other way of caching.
#7: Indicates whether the framework has an inbuilt validation or filtering component.
#8: Indicates whether the framework comes with inbuilt support for Ajax.
#9: Indicates whether the framework has an inbuilt module for handling user authentication.
#10: Indicates whether the framework has other modules, like an RSS feed parser, PDF module or anything else (useful).

#1:
表示框架是否内建模型 - 视图 - 控制器。
#2:
表示框架是否无需修改即可支持多数据库。
#3:
表示框架是否支持对象记录映射器,通常这是 ActiveRecord 的封装包。
#4:
表示框架是否包含其它数据库对象,比如 TableGateWay
#5:
表示框架是否内建模板引擎。
#6:
表示框架是否缓存对象或者其他缓存机制。
#7:
表示框架是否内建校验或过滤组件。
#8:
表示框架是否内建 Ajax 支持。
#9:
表示框架是否内建用户验证模块。
#10:
表示框架是否包含其他模块,例如 RSS feed 解析器、 PDF 模块或其他实用模块。

如果上表所列有不当之处,敬请斧正。


Zend Framework

Zend Framework
还相当新,尚处在 beta 阶段 ( 译者注 : 相对于作者写这篇文章之时 ) ,因此还有些功能有待完整 ( 比方说用户验证模块 ) ,但它本身已经有不少功能了。尽管从对比表上来看它没占到什么便宜,可 Zend Framework 确确实实涵括了一些处理 PDF 文档、 RSS 源、在线服务 (Amazon, Flickr, Yahoo) 的模块,甚至更多。 Zend Framework 同时也包含了数个不同的数据库对象,极大地便捷了对数据库进行查询的实现,甚至免去你手写 SQL 查询脚本的麻烦。

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

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

CakePHP


CakePHP

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2070939

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

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


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 封装包。
当你实在是无法决定选择哪个框架的时候,你仍可以选择像大多数人那样 : 自己动手。虽然耗时费力,但是乐趣无穷。
如果你有任何问题或留言,随时欢迎在下方的评论表单中留言,或者加入到 PHPit 论坛的讨论中来。同样,如果以上图标或文章有不当之处,敬请斧正。
  如开始所言,一部分框架已经有了长足的更新,而我最近比较倾向于 symfony ,它充实的文档令到上手非常方便,但是它的庞杂也令到开发小项目,甚至像我这样的个人迷你项目的过程有点得不偿失,也许 CodeIgniter 的简洁在这方面已经足够。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值