php

位置:IT落伍者 >> php >> 浏览文章

10款PHP开发框架的对比


发布日期:2024年06月04日
 
10款PHP开发框架的对比

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

概览
以下你看到是这十款开发框架的一览表列举了他们各自所提供的功能
#:
表示框架是否内建模型视图控制器
#: 表示框架是否无需修改即可支持多数据库
#: 表示框架是否支持对象记录映射器通常这是ActiveRecord的封装包
#: 表示框架是否包含其它数据库对象比如TableGateWay
#: 表示框架是否内建模板引擎
#: 表示框架是否缓存对象或者其他缓存机制
#: 表示框架是否内建校验或过滤组件
#: 表示框架是否内建Ajax支持
#: 表示框架是否内建用户验证模块
#: 表示框架是否包含其他模块例如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的ORMPropel也是开源项目并且迄今为止 可能是PHP上最好的ORM解决方案Symfony同时还整合了用于数据库抽象层的Creole和用于MVC模型层的Mojavi由于它仅仅是重用了 这些项目的源代码而非重写由此使得框架具备了极为强大的扩展性这一点在表中昭然若是

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

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

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

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

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

Prado
Prado 非常独特它提供了一些很酷的特性它没有内建对MVC的支持(就我看来)但是它确实拥有处理大多数PHP任务的各种各样的组件更棒的是它实现了事 件驱动脚本例如在一个HTML按钮上设置onClick事件链接到一个PHP函数这点近似ASPNET而Prado确实包含了更多的 ASPNET组件像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层更意外惊喜的是它支持PHP这对于它提供的这么全面的功能来说实在是太不简单了太棒了!

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

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

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

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

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

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

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

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

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

上一篇:PHP教程:如何实现301重定向

下一篇:用php创建网页桌面快捷方式的代码