CodeIgniter 扩展核心类

如果你需要在现有类库中加入一两个新的功能,那就完全不必要替换整个类库文件。

你只需简单地扩展(继承)现有的类,扩展一个类就像在类中增加一些例外:

[list]
[*]扩展的类必须申明由母类扩展而来。

[*]新扩展的类所在的文件必须以 MY_ 为前缀(这个选项是可配置的,下面有说明)。
[/list]

例如,要扩展原有的Input 类,你应该新建一个文件名为application/core/MY_Input.php, 并按如下声明你的类:[code]class MY_Input extends CI_Input {

}
[/code]注意:如果你需要在类中使用构造函数,你必须在构造函数中显式继承母类构造函数:[code]class MY_Input extends CI_Input {

function __construct()
{
    parent::__construct();
}

}[/code]所有在你的新类中定义的函数如果与母类中函数的命名完全一样,这些函数就能取代母类中原有的函数 (这也被称为"方法覆盖").这允许你在本质上改变CodeIgniter的核心.

如果你扩展了控制器核心类,那么也要在你的应用程序控制器的构造函数中使用这个新类。[code]class Welcome extends MY_Controller {

function __construct()
{
    parent::__construct();
}

function index()
{
    $this->load->view('welcome_message');
}

}[/code]