注册
登录
会员
标签
统计
帮助
PHP开发者社群
»
※ PHP开发框架※
»
※框架综合交流区※
» 10大主流PHP开发框架PK
‹‹ 上一主题
|
下一主题 ››
发新话题
投票
商品
悬赏
活动
辩论
打印
10大主流PHP开发框架PK
本主题由 phpres 于 2007-11-8 16:31 设置高亮
Symfony-cn
高级会员
个人空间
发短消息
加为好友
当前离线
1
#
大
中
小
发表于 2007-6-15 13:20
只看该作者
10大主流PHP开发框架PK
这篇文章
已经有些日子了,现在因为自己的开发需要想选一款容易上手的
PHP
Framework
,所以重新找了出来,看完以后顺便翻译了一下,由于原文是写于今年三月底,故而其中的很多
框架
的现状也发生了较大的变化,本篇译文也只是方便大家阅读,对于正在寻找这方面资料的读者做个参考,也给自己一个知识备份......
引子
PHP开发框架近来在PHP社区中成为讨论的热点,几乎每天都在推出新的框架。面对
市面上超过四十种的开发框架
,你很难判断究竟哪一款最适合你,尤其是在这些框架所提供的功能不尽相同的时候。
本文将引导你遍览十款最热门最流行的开发框架,并对它们作出横向比对。我会先列出一张所有框架的一览表,而后我们将对它们逐个简述。
概览
以下你看到是这十款开发框架的一览表,列举了他们各自所提供的功能。
如开始所言,一部分框架已经有了长足的更新,而我最近比较倾向于
symfony
,它充实的
文档
令到上手非常方便,但是它的庞杂也令到开发小
项目
,甚至像我这样的个人迷你项目的过程有点得不偿失,也许
CodeIgniter
的简洁在这方面已经足够。
#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是一款高级的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-cn 于 2007-6-15 13:31 编辑
]
UID
1668
帖子
91
精华
5
积分
523
注册
2007-6-14
阅读权限
50
查看详细资料
TOP
Symfony-cn
高级会员
个人空间
发短消息
加为好友
当前离线
2
#
大
中
小
发表于 2007-6-15 13:33
只看该作者
Framework Comparison ChartFrameworkPHP4PHP5MVC
1
Multiple DB's
2
ORM
3
DB Objects
4
Templates
5
Caching
6
Validation
7
Ajax
8
Auth Module
9
Modules
10
Zend Framework
-
-
-
--
CakePHP
-
-
Symfony Project
-
-
-
Seagull Framework
-
WACT
-
-
---
Prado
-
-
--
PHP on TRAX
-
--
--
ZooP Framework
-
eZ Components
-
-
-
--
CodeIgniter
-
--
#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).
Copyright © 2006 Dennis Pallett,
PHPit - Totally PHP
.
Return to the article
UID
1668
帖子
91
精华
5
积分
523
注册
2007-6-14
阅读权限
50
查看详细资料
TOP
Symfony-cn
高级会员
个人空间
发短消息
加为好友
当前离线
3
#
大
中
小
发表于 2007-6-15 13:34
只看该作者
呵呵,不知对大家有用木得
UID
1668
帖子
91
精华
5
积分
523
注册
2007-6-14
阅读权限
50
查看详细资料
TOP
rephpvv
新手上路
个人空间
发短消息
加为好友
当前离线
4
#
大
中
小
发表于 2007-6-16 02:28
只看该作者
^-^
boeenn
51q
99
vo
bb
UID
1684
帖子
10
精华
0
积分
30
注册
2007-6-16
阅读权限
10
查看详细资料
TOP
lisa888
DFPer
版主
个人空间
发短消息
加为好友
当前离线
5
#
大
中
小
发表于 2007-11-27 15:03
只看该作者
刚接触,感觉还好,现在有点晕。。。。。。,以前做多了面向对象的东西,现在有点头晕,不想转到BS程序,还是面向对象。
以前CS程序要做个框架很难,现在似乎有点平坦的感觉。
UID
4552
帖子
73
精华
2
积分
1109
注册
2007-11-2
阅读权限
100
来自
江西
查看个人网站
查看详细资料
TOP
whcvip
新手上路
个人空间
发短消息
加为好友
当前离线
6
#
大
中
小
发表于 2008-7-2 23:52
只看该作者
现在似乎有点平坦的感觉。
UID
10206
帖子
6
精华
0
积分
18
注册
2008-7-2
阅读权限
10
查看详细资料
TOP
‹‹ 上一主题
|
下一主题 ››
≡ PHP技术交流≡
Delphi For PHP专区
※PHP编程求助※
※数据库专区※
※ PHP开发框架※
※框架综合交流区※
※ThinkPHP开发框架※
※CakePHP开发框架※
※FleaPHP开发框架※
※Zend Framework※
※Symfony开发框架※
※javascript/Ajax技术※
※PHP GTK开发※
☞ PEAR 中文社群☜
※ZEND应用讨论※
※PHP应用加速交流※
※ PHP模板引擎※
※综合讨论区※
※Smarty 模板引擎※
※PHPLib Template模板引擎※
※SmartTemplate模板引擎※
FastTemplate 模板讨论区
※WEB标准化※
※版本控制技术※
PHP各种源码下载
开发工具下载
PHP相关资料下载
PHP源代码下载
PHP开发资源精华索引
[新]※精华下载※
Java相关
编程语言
.NET相关
系统管理
软件工程
网络通信
数据库相关
图形编程开发
考试认证
计算机理论
资源求助
≡ 综合交流区≡
※招聘求职※
架站讨论
业界新闻与评论
图书与评论
≡ 休闲生活≡
※娱乐乐园※
※广告发布※
≡ 站务管理 ≡
※站务交流※
控制面板首页
编辑个人资料
积分记录
公众用户组
好友列表
个人空间管理
升级个人空间
基本概况
论坛排行
主题排行
发帖排行
积分排行
交易排行
在线时间
管理团队
Delphi For PHP完美破解UTF-8版下载
[荐]Delphi For PHP 在线教学视频
PHP开源项目大全开张,火热收藏
求知:麻辣堂十万个问题火热进行
[Discuz 6.0]不能登陆的解决办法
Norton防火墙用户访问本站注意事项
有做站和博客的兄弟们注意啦。。
热烈庆祝本站被DMOZ收录(10-09)
VCL for PHP 文档资源
D4P完全支持中文三部曲
快来获得本站“
大百科
”调用代码
推荐:
中国赢网(专业PHP空间)
《symfony 权威指南》翻译项目启动
FleaPHP和本站官方合作通告
2008年新版博墅上线,你开通了吗?
推荐:本站Linux用户组专区开通
推荐:PHP开发专家论坛,面向中高级PHP程序员的深度软件开发社群。
推荐:PHP专家博客社群,免费博墅送给你~
PHP开源大全 - 其文五百年不朽;其人一千年不朽.一千年后,世界末日,什么都朽了
推荐:通过大百科展示“PHP相关知识”的精彩问题?
好玩~去麻辣堂做任务, 相信我能帮助你解决难题。