我已经像这样扩展了我的 CI_Controller:
// base extend
class MY_Controller extends CI_Controller {
public $CI = array();
public function __construct() {
parent::__construct();
$this->CI = & get_instance();
}
public function isUser(){
// for example
}
}
// admin extended
class MY_AdminController extends MY_Controller {
public $admin = array();
public function __construct() {
parent::__construct();
$this->CI->lang->load('admin');
$this->admin['lang'] = $this->CI->lang->line('admin');
$this->CI->load->vars($this->admin);
}
public function isAdmin(){
//for example
}
}
// extends for modules
class MY_AdminModuleController extends MY_AdminController {
public function __construct() {
parent::__construct();
$this->CI->load->view('_header');
}
public function isAllowedModule(){
// example
}
public function pseudoDestruct(){
$this->CI->load->view('_footer');
}
}
所以它工作正常。但是我尝试挂钩post_controller
事件并添加我的MY_AdminModuleController->pseudoDestruct()
,所以我在 config.php 中启用了挂钩,并在挂钩中添加了下一行:
$hook['post_controller'] = array(
'class' => 'MY_AdminModuleController',
'function' => 'pseudoDestruct',
'filename' => 'MY_Controller.php',
'filepath' => 'core'
);
但是我在 MY_AdminController 的构造函数中加载语言文件时遇到了问题。它null
在从钩子调用时返回(true
当我正常使用它时)并且我注意到前端未定义索引。不,我不想禁用通知,我想解决问题。此外,我在 MY_AdminController 的构造函数中加载了配置,并且加载良好。