用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5613|回复: 3
收起左侧

[讨论/交流] 探索CodeIgniter 2.0新特性【翻译】

[复制链接]
发表于 2010-5-11 12:01:01 | 显示全部楼层 |阅读模式
本帖最后由 navy92f 于 2010-5-11 12:02 编辑

引用:http://www.haughin.com/2010/03/11/codeigniter-2-critical-changes-implications/
原文:http://www.pursuitcafe.com/blog/?p=113

CodeIgniter 2.0基于PHP5!

CodeIgniter 2.0 将不再支持PHP4环境。一直以来,CI都是少数支持PHP4的框架之一。这的确吸引了大量的开发者,但是事情很明显,在适当的时候Ellislab会开发一个只支持PHP5的分支版本。这个消息并不让我吃惊,但是这个改变值得我们思考。

    CI不再支持PHP 4。CI2.0的特性可能不再支持PHP4,而且CI2.1.0以后,CI将完全放弃PHP4.

可能大多数人会认为这个改变只是意味着一件事:CI将不能跑在PHP4的主机上。这是显然的,但这个改变还有更为重要的意义。这个改变对 Ellislab来说,意义是它能是CI的核心充分利用PHP5面向对象的特性。

CodeIgniter 可以使用访问修饰符去限制变量的访问;静态方法和变量可以不用实例化一个类就能,访问CI的成员。以及抽象类,接口,反射,构造和解构函数,自动加载。还有很多特性。

总之,这个改变使得Ellislab有了重量级武器,可以使CI向前发展了。面向对象的模式,使得CI可以写出更简洁的代码。



/////////////////////////////////////////////////////////////////
应用程序包

许多CI的应用都包含多于一个的application目录。例如,我现在的客户项目中,就有两个目录:app和cp。app包含所有的前台业务代码,cp目录中包含所有的后台业务代码。

然而他们之间都在使用着一些通用的类库,助手函数,视图,和配置文件。现在我需要在每个目录下都有份拷贝。现在你可以建立一个通用的common目录,来存放类库,助手,配置文件,语言文件等,这个目录可以被几套应用同时使用。

CI中,可以这样做:

// 目录结构

// application/app = APPPATH (contains controllers, views etc)

// application/_common = my package, contains a few helpers and libraries.

$this->load->add_package_path(BASEPATH.’application/_common/’);

$this->load->helper(‘booya’);

一旦你这样做了,你就可以使用booya_helper.php里的函数,尽管这个文件不再当前application目录下。


Drivers

CI中添加了一种新的类,叫做driver。CI通过这个类可以使一个父类带有多个子类。子类可以访问父类,而子类之间不能互相访问。你可以这样使用:



// 这里的类名是你想加载的驱动器类的名称。例如你想加载一个叫做 "Some Parent" 的类。

$this->load->driver('some_parent');

// 可以这样使用父类的方法:

$this->some_parent->some_method();

// 他的子类可以通过父类直接访问,不用单独加载和实例化。

$this->some_parent->child_one->some_method();

$this->some_parent->child_two->another_method();

这样做的好处就是可以把相同功能的代码打包,放到一起。

例如:

$this->load->driver('api');

$this->api->twitter->call('statuses/update', array('update' => 'Nice status!'));

$this->api->facebook->get_friends();

$this->api->vimeo->get_videos($user);

我认为新的驱动器类,可以让我们开发者更方便的发行一种实现相似功能的类库包(比如我在做的API类库)。驱动类还是我们写出更DRY的代码。我们的代码将变得更

有序,方便使用。这就是部署驱动类的好处吧。
新的Javascript类库

这个功能终于被加到了CI的核心里。你现在可以使用PHP里动态加载JavaScript。

现在的JavaScript类是一个驱动器(上面提到的)。现在他只用一个子类,就是jquery。但是,这足够让你写出灵活的jquery代码。


插件不见了

Ellislab去掉了插件。我一直都不喜欢使用插件,相反我会避免使用它。有东西去除,和有新元素加入都让人感到兴奋不以。至少我们可以认为,Ellislab还是想保持一个轻量的体型,敏捷的速度,而不是像现在那些复杂的框架一样。


代码转移

Ellislab已将代码转移到了bitbucket,而不再使用公司内部的版本控制系统,这将会利用社区的力量加快CI的开发。


欢迎加入http://www.pursuitcafe.com/dig/
挖掘PHP新鲜资讯

评分

参与人数 1威望 +5 收起 理由
Hex + 5 精品文章

查看全部评分

发表于 2010-5-11 14:16:44 | 显示全部楼层
新网站 一般谁还用PHP 4:)
发表于 2010-5-11 14:28:39 | 显示全部楼层
期待 2.0 。。。。。。。。。。。。。。。。。。。。。
发表于 2010-5-17 21:32:47 | 显示全部楼层
喷血期待中!请问目录多层问题解决了么。。。

本版积分规则