|
本帖最后由 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新鲜资讯 |
评分
-
查看全部评分
|