浅析十款PHP开发框架的对比
PHP开发框架近来在PHP社区中成为讨论的热点,几乎每天都在推出新的框架。面对市面上超过四十种的开发框架,你很难判断究竟哪一款最适合你,尤其是在这些框架所提供的功能不尽相同的时候。
概览
#1:
#2:表示框架是否无需修改即可支持多数据库。
#3:表示框架是否支持对象记录映射器,通常这是ActiveRecord的封装包。
#4:表示框架是否包含其它数据库对象,比如TableGateWay。
#5:表示框架是否内建模板引擎。
#6:表示框架是否缓存对象或者其他缓存机制。
#7:表示框架是否内建校验或过滤组件。
#8:表示框架是否内建Ajax支持。
#9:表示框架是否内建用户验证模块。
#10:表示框架是否包含其他模块,例如RSSfeed解析器、PDF模块或其他实用模块。
当前,ZendFramework并未完全支持ORM,但是开发人员仍然陷入在是否要添加ORM层的争论中。也许在将来会实现这些功能,你就可以编写自己的ORM封装包,投稿到社区,并有机会将之整合入框架的未来版本。
ZendFramework看上去前途一片光明,而且它同时又修正了一些常见的PHP问题。也许稳定版本就可以在对比表里面表现得更出色了!
尽管CakePHP的网站看上去令人犯晕,但是框架本身已经比较完整可用了。截至成文尚未见稳定版本,实在令人感到有点意外,毕竟已经开发了好几个月了,不过我猜想也许用beta版本来开发产品也未尝不可吧
Symfony有两个缺憾,以使它不支持PHP4,这是由于需要PHP5中很多新特性的支持的结果,二是相对来说它有点复杂了。大多数任务,比方像分页,在Symfony中的时限比其他框架要复杂得多,这决不是一款简洁著称的框架。
不幸的是,Seagull没有提供对Ajax的支持,实在有点说不过去,不过通过Google可以毫不费力地搜索到一篇自己添加Ajax支持的教程,而且这点在将来应该会添加到框架中。
尽管如此,WACT还是拥有最好的模板引擎,甚至可以帮助你创建自己的模板标签来扩展功能。
仅凭对比表上的数据,Prado看似要弱于其它框架,但事实并非如此。因为Prado如此独特,尽管它得分不高,但是在实际应用中它是非常强大的。
PHPonTrax基本上能符合使用者对框架的要求,但是它还是缺胳膊少腿,比方像验证模块和缓存模块。它也没有任何外挂模块,是以目前来说,它很初级。
ZooP还提供了内建的GUI控制,使得创建表单的工作变得异常快捷。它支持绝大多数的常用表单元素,在常规HTML里使用GUI控制的好处就是你可以将验证的逻辑操作和GUI控制紧密地结合在一起。
它包括了大多数常用组件,如数据库组件和缓存组件,可还是缺少点东西。比方说,没有ActiveRecord组件和验证组件。另一方面,它提供了一些外挂组件,比如e-mail组件,但是不多,其它框架(像ZendFramework)提供的更多。
CodeIgniter
CodeIgniter相对来讲是个很新的框架,它的作者是ExpressionEngine的开发团队(译者注:PHPblog程序pMachine的升级换代产品,很可惜不是免费的),看上去很有潜质。不幸的是,它尚不能处理多数据库,尽管这项功能仍在开发中。
它源于RubyonRails,所以它提供了很多的相同功能,比如scaffolding(代码自动生成)。它的文档编得相当棒,甚至还有视频教程帮助你快速上手。
获胜者是...
在这里我不得不非常遗憾地宣布,无人胜出。每个框架所提供的功能特性不尽相同,因此无人完胜。一如往常,最后这将取决于个人偏好和选择。我极力推荐你在作出决定前先认真仔细地研读各个框架的文档,剩下就靠你自己判断了。
就个人而言,我的确非常喜欢ZendFramework,但当我仔细研究了每个框架之后,我发现了很多有趣的功能,比方说Prado的事件,抑或Symfony的ORM封装包。
当你实在是无法决定选择哪个框架的时候,你仍可以选择像大多数人那样:自己动手。虽然耗时费力,但是乐趣无穷。
如开始所言,一部分框架已经有了长足的更新,而我最近比较倾向于symfony,它充实的文档令到上手非常方便,但是它的庞杂也令到开发小项目,甚至像我这样的个人迷你项目的过程有点得不偿失,也许CodeIgniter的简洁在这方面已经足够。
相关文章
- 数据库PHP究竟如何还原MySQL数据库?(php还原mysql)
- Redis实战:PHP开发者必备技能(redis实战php)
- Linux下搭建完善的PHP开发环境(linux搭建php环境)
- 网站利用 PHP 与 MySQL 构建网站.(php和mysql开发)
- Linux重启PHP的命令操作指南(linux重启php命令)
- 数据PHP操作MySQL:删除数据(php删除mysql)
- php在Linux上使用Yaf框架开发PHP应用(yaflinux)
- 器使用Linux快速启动PHP服务器(linux启动php服务)
- Redis实现长连接:PHP开发入门(redis长连接php)
- 自定义用于 Web 开发的开源 PHP 框架 Codeigniter
- PHP与MySQL互动:开发动态网站的关键(php与mysql交互)
- Android实现PHP连接MySQL进行数据交互(android通过php连接mysql)
- 驱动开发:PHP框架与MongoDB的结合(php框架mongodb)
- 使用Linux命令行来优化你的PHP开发(linux命令行php)
- PHP结合MySQL实现数据库事务锁定机制(php mysql 锁)
- 使用PHP连接MSSQL数据库的实例示范(php连接mssql例子)
- PHP封装MSSQL,提升高效开发力度(php mssql 封装)
- Linux下快速搭建PHP开发环境(linux php集成环境)
- MySQL与PHP开发之旅(mysql与php书籍)
- 用PHP实现Redis缓存一个实例(redis缓存实例php)
- PHP开发框架kohana3.3.1在nginx下的伪静态设置例子