仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2525|回复: 20
打印 上一主题 下一主题

[学习教程] PHP编程:PHP开辟框架横向对照

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:16:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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开发学习,或许只是一次偶然的想法吧!只是想在走向社会之前体验、学习在一个公司或者说是项目团队之中如何去更有效的沟通、交流、共同合作,还有就是为毕业实习找工作增加伐码。
变相怪杰 该用户已被删除
沙发
发表于 2015-2-4 10:42:47 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
精灵巫婆 该用户已被删除
板凳
发表于 2015-2-4 23:07:49 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
admin 该用户已被删除
地板
发表于 2015-2-10 22:37:35 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
山那边是海 该用户已被删除
5#
发表于 2015-2-19 04:51:50 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
透明 该用户已被删除
6#
发表于 2015-3-5 11:02:43 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
简单生活 该用户已被删除
7#
发表于 2015-3-8 14:37:23 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
兰色精灵 该用户已被删除
8#
发表于 2015-3-11 17:25:46 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
分手快乐 该用户已被删除
9#
发表于 2015-3-15 11:10:35 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
莫相离 该用户已被删除
10#
发表于 2015-3-19 02:22:01 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
飘飘悠悠 该用户已被删除
11#
发表于 2015-3-24 16:14:22 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
活着的死人 该用户已被删除
12#
发表于 2015-3-30 01:32:45 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
灵魂腐蚀 该用户已被删除
13#
发表于 2015-4-11 01:13:05 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
第二个灵魂 该用户已被删除
14#
发表于 2015-4-12 13:11:09 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
深爱那片海 该用户已被删除
15#
发表于 2015-4-15 13:38:11 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
小妖女 该用户已被删除
16#
发表于 2015-4-15 17:55:14 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
海妖 该用户已被删除
17#
发表于 2015-4-16 10:11:38 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
再见西城 该用户已被删除
18#
发表于 2015-4-24 00:31:59 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
只想知道 该用户已被删除
19#
发表于 2015-5-3 03:14:16 | 只看该作者
实践是检验自己会不会的真理。
爱飞 该用户已被删除
20#
发表于 2015-6-22 00:40:59 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 14:02

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表