我想创建一个代表Code Igniter中当前用户的全局对象。对象的构造函数采用用户id,该用户id存储在$_SESSION['user_id']
。
每次用户访问页面时,我都想创建此用户对象。我应该在哪里实例化它?我认为在config / constants.php中实例化它是有效的,但是有一个更标准/可靠的地方来实例化它吗?
答案 0 :(得分:3)
一个选项是创建一个MY_Controller
,所有其他控制器都将从中继承。用户对象可以在MY_Controller
中实例化,因此可以在从它继承的每个控制器中使用。
简化示例:
class MY_Controller extends CI_Controller {
public $user;
function __construct(){
parent::__construct();
// Get the current user (pseudo code, obviously)
$this->user = $this->user_model->get_user($id);
}
}
class Some_other_controller extends My_Controller {
function __construct(){
parent::__construct();
// $user is available throughout this controller
}
}
class Another_controller extends My_Controller {
function __construct(){
parent::__construct();
// $user is available throughout this controller
}
}