Определение глобальных (динамических) переменных в Codeigniter - PullRequest
0 голосов
/ 21 ноября 2011

Есть ли способ определения динамической глобальной переменной в Codeigniter?Мне нужно регулярно использовать:

$this->session->userdata('user_id')

в моем коде, и я действительно не хочу постоянно печатать это.В другом проекте я использовал что-то вроде:

$this->mid = $this->session->userdata('user_id')

в конструкторе контроллера, делая его доступным для каждого метода в этом контроллере, но затем я должен переопределить его в любом другом конструкторе контроллера.Я знаю, что звучу лениво, но я просто хочу сделать лучший DRY-код из возможных.Я знаю, что вы можете указать статические переменные в файле config / config.php, но эти переменные являются динамическими - поэтому я не думаю, что у вас будет доступ к объекту $ this (или чему-то другому) в этом файле.

Есть ли способ сделать такую ​​переменную сеанса глобальной?

1 Ответ

2 голосов
/ 30 ноября 2011

Создание пользовательского контроллера MY_Controller.php:

<?php
    class MY_Controller extends Controller {

        var user_id = '';

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

            $this->user_id = $this->session->userdata('user_id');
        }
    }
?>

И расширение этого контроллера вашими контроллерами, например контроллером Welcome.php:

<?php
    class Welcome extends MY_Controller {

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

        function index() {
            var_dump( $this->user_id );
        }
    }
?>

Вы можете установить глобальныйпеременная в MY_Controller и использовать ее на каждом контроллере, который расширяет пользовательский.

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