|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
模仿的不光是模仿,模仿的同时在加改进,就成了自己的作品了。对照|开辟框架 引子
PHP开辟框架最近在PHP社区中成为会商的热门,几近天天都在推出新的框架。面临市情上超越四十种的开辟框架,你很难判别事实哪一款最合适你,特别是在这些框架所供应的功效不尽不异的时分。
本文将引诱你遍览十款最火门最盛行的开辟框架,并对它们作出横向比对。我会先列出一张一切框架的一览表,尔后咱们将对它们逐一简述。
概览
以下你看到是这十款开辟框架的一览表,罗列了他们各自所供应的功效。
Framework Comparison Chart
Framework PHP4 PHP5 MVC1 Multiple DB's2 ORM3 DB Objects4 Templates5 Caching6 Validation7 Ajax8 Auth Module9 Modules10 Zend Framework - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] CakePHP [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - Symfony Project - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - Seagull Framework [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] WACT [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - - - Prado - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] PHP on TRAX - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - - ZooP Framework [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] eZ Components - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] CodeIgniter [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] [img=20 style=,18 src=]http://www.ckuyun.com/[/img] - - [img=20 style=,18 src=]http://www.ckuyun.com/[/img]
#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封装包。
当你其实是没法决意选择哪一个框架的时分,你仍可以选择像大多半人那样: 本人下手。固然耗时吃力,然而乐趣无量。
参加PHP开发学习,或许只是一次偶然的想法吧!只是想在走向社会之前体验、学习在一个公司或者说是项目团队之中如何去更有效的沟通、交流、共同合作,还有就是为毕业实习找工作增加伐码。 |
|