什么是框架,什么是CI?

2010-01-31 21:31:24 | MVC | 关键字: , |评论 

三百六十行中新增编程这一行不久,人们注意到它牵涉了许多可重复的工作。你或者其它人也许不久以后就要用到几乎同样的功能,但是你必须花很长的时间来修改它。于是,人们就发明了使用函数库的方法来重用代码。使用PHP的兄弟们也会使用函数库,并按用途分类保存到不同的文件中,在编程时用require或include来使用它们。

同样的,框架是为重用而发明的,放在和你的代码分开的目录中,用来减少重复的劳动。

上面例子中连接数据库和写HTML页面的编程工作都可以调用相关的CI函数来进行简化。

有很多种方法实现同样的功能,大多数的框架会让你按照它实现的方法来做,一般来说,框架的作者很有经验,并且作了精心的设计,你可以在几乎所有的场合下使用。

好的框架设计能实现需要的功能, 而且尽可能地不互相牵连。 一个好框架为你做出各种功能的实现,并且给你提供一步一步的编程指导。

提到框架时,就不能不提到有名的框架:Ruby on Rails。

Rails做得相当成功, 因为它藉由最小量的编码, 明显地提供简便快捷的网站开发。 本质上,它是一个结构和一组工具,专为使用Ruby语言的用户开发,允许你快速建立Ruby系统原型。 它不是Ruby语言中唯一的框架,但是它一定是最有开发效率和最有名的。

为PHP开发的框架有好多个,CI只是其中的一个。 其它的还包括Zend Framework、Cake、 Trax 和其他。 下列网址可以找到一个针对十来种框架的简明的图表分析:

http://www.phpit.net/article/ten-different-php-frameworks/。

如果你访问上述网址中相关产品的官方网站, 你将会注意到,每个论坛都有一个共同的热点,就是到底哪个一个框架是最好的? 事实似乎是每个都有它的长处,而且又都有自己的弱点。 我的评估标准是: 我很忙; 因此框架应该节约我的时间,从中选择一个后,就坚持使用下去,因此就有了这篇介绍CI框架的文章。

关于开发者

Rick Ellis开发了CI,他曾经是一个摇滚音乐家,现在是一个软件设计师。 Rick还是pMachine公司的CEO,该公司还有一个著名的CMS产品叫做Expression Engine. 2006年1月,他在他的博客中写道:
(http://ellislab.com)

“我花了数星期时间搜索和安装PHP框架, 也被它们中的许多打击了一把,令我惊讶的是:我发现大多数框架存在以下问题:

. 文档不全或质量很差

. 他们假定你水平很高,希望你能很容易地掌握使用方法

. 他们是为那些有超级用户权限或者有权修改服务器设置的人写的

. 他们假定你偏爱命令行操作,事实上许多人无此爱好

. 偏爱使用PEAR类库或其它开源代码库

. 模板语法过于复杂

. 有的太笨重,有的又太简单

. 大多数框架只能在PHP5中运行,只有5%的使用率

我还没有找到一个简单的PHP框架, 健壮,易于使用, 文档完整,包含建立一个完整应用需要的所有工具彻底地从顶端被证明到根据,生来地包括不可或缺的建立强健的申请的所有的工具, 并且有一个以浏览器为基础的接口, 使用普通用户权限就能安装。没有别的原因,就是市场需要这一单一的原因促使我想开发这样一个框架产品…”

结果是CI诞生了, 作为一个业余时间开发的作品,Rick慷慨地决定使它成为开源作品。在跑生意间隙,他保持经常更新CI。 他也创建了一个优秀的论坛, CI使用者能提出问题而且分享开发心得。 所有这些资源可从下列网址获得:

http://www.codeigniter.com/

他能实现自己的设计目标吗?相信你使用后会得出自己的结论.

CI不能做什么

CI有它本身的缺点。Rick把CI定义为小的和’轻量级’的结构。(1.5版压缩后只有737KB可以在几秒种内下载完毕。Zend Framework是10MB) CI不能解决你所有的问题。 但是它能够:

. 使PHP编程更容易

. 帮助你架构网站或使你更容易地设计架构

作为 ‘轻量级’ 框架的一个结果是它没有它的对手具有的许多特征。 象Rails因为它包含 ‘脚手架’功能和”代码生成器”,因此可以为你编写一些基本的脚本代码。 因此, 举例来说,一经你已经建立一个数据库, Rails能自动生成简单的CRUD脚本(Create, Read, Update, Delete)。

除此之外,Rails还能让你编写’代码生成器’-自动地写其他的简单脚本代码。Rails社区中有许多这样的例子,因此你可以做很多智能化的东西。

CI不这样做。(有基本的 ‘脚手架’功能-在CI中,脚手架只给开发者使用。就象在线手册描述的一样: “脚手架安全性不够…如要使用脚手架的话要确保在使用后立即关闭这个功能。在实际运行的网站上不要让脚手架处在工作状态。” 说得够明确了吧?)

相反地CI专注于使基本的东西更容易。它处理的一些事物是:

. session管理和cookie管理 (见第 6 章)

. 数据库访问和查询 (见第 4 章)

. 创建HTML相关内容,如页面和表单,并检验输入内容。(见第 5 章)

. 测试 (第 8 章)

. 英特网通信, 使用FTP或 XMLRPC(第 9 章)

很熟悉吧? 这些全部是基本的处理, 如果你正在创建一个动态的网站,你一定会做这些工作。 CI使这些工作更容易, 而且使你的代码尽可能更好地工作。

许可证

参见CI下载文件包

摘要

如果你已经掌握PHP的基本知识并且想“聪明”地编写动态网站脚本, CodeIgniter框架会使你的工作更容易,它帮助你:

. 节约时间

. 使你的网站更强健

. 帮助你编写更复杂的系统

它使你更好地享受编程乐趣, 而不是一个干苦活的体力工。

有相当多的框架, 还有很多是为其它语言开发的。 他们都能减少编码的重复工作,使编写复杂程序变得更容易, 而且建立一个合理的系统架构。

这篇文章不制造框架大战。文章中已经解释了选择CI理由,让它为你节约更多的时间用在学习工作和生活中吧,请享用它!

文章回复:

TOP