爱飞 发表于 2015-2-3 23:39:36

PHP编程:从头审阅 PHP 框架 CodeIgniter VS Zen...

看到好的帖子最好up一下,以使得更多的人得到分享。   咱们企图从头入手下手一个新项目,为此评价了一些PHP框架。咱们的备选列表有CakePHP , CodeIgniter , Symfony和Zend 。 咱们分离利用这4种框架编写了一个不异的小使用(一个复杂的Wiki使用),但愿咱们能尽快选定一个最适合的。

声明:我会勉力确保本人的客不雅性,固然我是一个ColdeIginter的喜好者。我所任务的公司是Zend的合股人(咱们已利用了Zend Platform 和 Zend Studio)。   虽然一入手下手的企图是评价4个框架,然而这篇文章实践是CodeIgniter和Zend Framework的直接对照。在消费了几个小时研讨了这4个框架后,我不能不把Symfony和CakePHP从名单中扫除。来由以下:
  Learning curve 进修曲线
Symfony 和 CakePHP都有一个十分峻峭的进修曲线。CakePHP有严厉的划定规矩:数据标明此、文件地位、办法名和类名。Symfony利用 .yml 格局(需求进修,固然它不是真的很难)来存储设置装备摆设信息,而且大批的操作需求经由过程掌握台(console)完成,创立数据表、数据模子和良多其它文件都需求利用号令行。
  Strict ORM: 严厉的ORM
Symfony 和 CakePHP都有一个成熟的对象关系映照器(object-relational mappers ORM) ,供应对数据的会见,然而这一特征很难被禁用,除非作出大批的勉力。这些ORM有着严厉的划定规矩和商定,它们必需被遵守。与之相反,Zend Framework 和 CodeIgniter 在是不是利用Models和若何利用Models上十分天真的。利用Models是可选的,固然它们都无数据映照器(data mappers),但没有这些使用一样可以停止(开辟编写)。使用的数据操作将是极为密集和精密(intensive )的,咱们不肯意遭到选择的限制。
  Flexibility: 天真性
Zend Framework和CodeIgniter比其他两个框架更天真。
终究对照
    CodeIgniter   Zend Framework   Set Up 初始创立
  CodeIgniter很轻易初始化。 复制框架的一切文件到收集办事器,这是一个不错的入手下手。 它的文件夹也很小-大约2 .1兆。从入手下手创立,5分钟后,我就能够显示出默许主页。   Zend Framework需求费事一些,它需求创立一个bootstrap文件,填写一切的初始化设置。对照之下,框架有点大-大约12.4MB。全部初始创立进程用来大约19分钟。   文档
  文档的布局和组织相当好,然而不如Zend Framework具体。CodeIgniter有服装论坛和Wike,有良多用户提交的代码。   Zend Framework有十分具体的文档,而且有良多示例。在我看来它的文档布局不如CodeIgniter,这多是遭到后面提到的细节和大批的可用的部件影响。ZF 也有一个Wiki,外面有大批的教程。   模板
  CodeIgniter包含一个模板剖析器类,在我看来,它的感化是无限的,由于它不撑持逻辑(例如,IF语句)。不论怎样说,CI建议在模板(view)中利用PHP标签。   ZF 包括了一个结构类,用于给全部站点或使用供应一个通用结构(或多个结构)。它直接在模板中利用PHP标签,它也供应了一个笼统的View类,可使用第三方模板库停止扩大。   组件
  CI有良多库和匡助器来简化开辟进程。虽然这些比拟ZF仍是显得少,但大体上,用法更复杂(While it does have less of these than ZF, in the main, the usage of the CI variants is simpler)。   ZF有巨量的类和组件。它们有着很好的文档但利用起来要比CI的略微庞杂一些。   数据会见
  CI有一个用于处置数据库毗连的数据库类。这个类可使用尺度的SQL查询,利用尺度的PHP体例停止创立、检索、更新和删除。CI也供应了一个Active Record类,这是一个修正版的举动纪录形式(Active Record Database Pattern)。这一形式可让你利用更少的代码停止数据检索、拔出和更新。某些情形下仅仅需求1到2行代码就能够停止一个数据操作。除简化,举动纪录的一个次要优点是:它可以创立一个不依附数据库的使用,由于查询语句是由分歧的数据库适配器生成的。它还思索了查询的平安性,体系会主动对变量停止escape。   Zend_Db 和它的相干类为ZF供应了一个复杂SQL数据库接口。它吸收尺度SQL查询然而简化了获得查询了局的进程。它还包含了一个ORM,利用Table Data Gateway 和 Row Data Gateway。它们分离把数据表和数据行包装成对象,而且极大的进步了开辟速度。弱点是,和CI利用的修正版的active record pattern(没有普遍的利用对象)比拟,有稍微的功能丧失。Zend_Db 还可以处置表关系。(Zend_Db can also model table relationships in PHP classes making database joins a breeze.)   天真性
  CI十分天真,几近一切的默许设置都可以修正。   ZF其实一个类的复杂纠合,一切的文件和目次可以被放置就任何地位,只需这些地位被到场到了bootstrap文件。   验证
  在CI中数据验证是由一个验证类处置的。一些划定规矩被界说并付与验证对象(object),验证对象主动的验证从URL或表单提交的数据。法式员可以决意若何处置这些获得。验证类还可以匡助主动的给指定字段设置毛病信息。   Zend_Validate 供应了一套经常使用的验证器。它还供应了一个复杂的验证器毗连机制,多个验证器可以按指定的按次使用到单一数据上(datum )。在 ZF中,每一个验证器都是一个分歧的类,类被添加到数据(就像过滤器),而不是像CI一样,数据被传入类。In ZF, each validator is a separate class and the class is added to the data (like a filter) rather than the data being passed into the class like it is in CodeIgniter.   表单
  CI中的Form Helper文件包括一些函数,用于匡助操作表单。它的感化是生成表单字段,然而书写HTML依然是没法防止的。   Zend_Form 简化了表单的创立和处置。它处置元素过滤、验证、escaping data、表单生成(rendering)。利用Zend_Form,ZF可使用PHP完整的包装一个表单,包含标签、验证、毛病信息。   功能
  CI大约有ZF的2倍功能   ZF大约比CI慢一半   测试
  CI有一个单位测试类,然而它勉励夹杂测试代码和真实代码,我不建议如许。或许可使用第三方的扩大用于复杂测试。A third-party extension for SimpleTest is available though。和CI的类一同利用PHPUnit也是可以的。   ZF没有内置的测试类,然而它的中心类利用PHPUnit作为测试框架,这可以被扩大来包括一切的附加类 this can be extended to include any additional classes。在ZF中利用 SimpleTest 也是可行的。   国际化
  NO   YES   受权
  BSD-style   New BSD
参加PHP开发学习,或许只是一次偶然的想法吧!只是想在走向社会之前体验、学习在一个公司或者说是项目团队之中如何去更有效的沟通、交流、共同合作,还有就是为毕业实习找工作增加伐码。

小魔女 发表于 2015-2-4 04:59:50

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

深爱那片海 发表于 2015-2-9 16:00:36

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

愤怒的大鸟 发表于 2015-2-27 09:41:53

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

再现理想 发表于 2015-3-4 03:08:30

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

老尸 发表于 2015-3-5 07:10:00

找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。

小妖女 发表于 2015-3-11 06:38:04

实践是检验自己会不会的真理。

山那边是海 发表于 2015-3-11 21:02:28

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

蒙在股里 发表于 2015-3-19 13:22:17

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

不帅 发表于 2015-3-29 00:50:49

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

金色的骷髅 发表于 2015-4-3 01:08:48

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

爱飞 发表于 2015-4-22 10:49:34

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

活着的死人 发表于 2015-4-26 17:09:39

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

乐观 发表于 2015-5-1 11:10:35

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

兰色精灵 发表于 2015-5-12 04:01:48

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

若天明 发表于 2015-6-6 15:23:57

实践是检验自己会不会的真理。

透明 发表于 2015-6-29 22:51:23

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

再见西城 发表于 2015-6-29 23:02:26

当然这种网站的会员费就几十块钱。

因胸联盟 发表于 2015-9-24 17:25:26

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

莫相离 发表于 2015-9-30 17:39:08

真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
页: [1]
查看完整版本: PHP编程:从头审阅 PHP 框架 CodeIgniter VS Zen...