在项目中我们通常需要一个自己的基类控制器,一般命名为 BaseController,在其他框架如 Laravel 框架中,我们只需要新建一个 BaseController 让他继承项目初始的基类就可以了,示例
但在 Codeigniter 中,这种方式是行不通的,在 CI 中有另外一套扩展核心类库的方法, CI_Controller 默认不属于原生类库,它是一个系统类库,是一个核心类,不能使用创建类库中的扩展原生类库的方法去扩展,而是应该使用创建核心系统类中的扩展核心类的方法去扩展这个类.将需要扩展的核心类放入目录 application/core下,示例
代码示例
<?php
/**
* Created by PhpStorm.
* User: nwei
* Date: 2018/10/9
* Time: 10:11
*
* .--, .--,
* ( ( \.---./ ) )
* '.__/o o\__.'
* {= ^ =}
* > - <
* / \
* // \\
* //| . |\\
* "'\ /'"_.-~^`'-.
* \ _ /--' `
* ___)( )(___
* (((__) (__))) 高山仰止,景行行止.虽不能至,心向往之.
*
*/
class MY_Controller extends CI_Controller {
/**
* MY_Controller constructor.
*/
public function __construct() {
parent::__construct();
}
}
扩展的核心类会自动加载,不需要手动加载,使用示例
<?php
/**
* Created by PhpStorm.
* User: nwei
* Date: 2018/9/27
* Time: 15:28
*
* .--, .--,
* ( ( \.---./ ) )
* '.__/o o\__.'
* {= ^ =}
* > - <
* / \
* // \\
* //| . |\\
* "'\ /'"_.-~^`'-.
* \ _ /--' `
* ___)( )(___
* (((__) (__))) 高山仰止,景行行止.虽不能至,心向往之.
*
*/
class CustomHttp extends MY_Controller {
public function index() {
echo "customhttp--index";
}
}
参考
https://codeigniter.org.cn/user_guide/general/core_classes.html
https://codeigniter.org.cn/user_guide/general/creating_libraries.html