Где создать экземпляр глобального объекта в Code Igniter? - PullRequest
0 голосов
/ 28 марта 2012

Я хочу создать глобальный объект, который представляет текущего пользователя в Code Igniter. Конструктор объекта принимает идентификатор пользователя, который хранится в $_SESSION['user_id'].

Каждый раз, когда пользователь посещает страницу, я хочу создать этот пользовательский объект. Где я должен это создать? Я думаю, что его создание в config / constants.php работает, но есть ли более стандартное / надежное место для его создания?

1 Ответ

3 голосов
/ 28 марта 2012

Один из вариантов - создать 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
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...