Codeigniter: как загрузить константы, определенные в хуке, в конструкторе моего контроллера - PullRequest
0 голосов
/ 19 августа 2011

Проблема: Я определил несколько констант в своем хуке, но не могу получить к ним доступ в своем конструкторе контроллера с субклассами.

Код: А - класс крючка:

class Settings extends CI_Hooks {

    public function load_settings() {
        $CI =& get_instance();
        $CI->load->model('hooks/settings_model');
        $data = $CI->settings_model->load_settings();
        define('MEMBERS_PER_PAGE', $data['members_per_page']);
        define('REGISTER_ENABLED', $data['register']);
        define('SITE_ACCESS_ENABLED', $data['site_access']);
        define('ADMIN_EMAIL', $data['admin_email']);
    }

}

B - конфигурация хука:

$hook['post_controller_constructor'] = array(
                                'class'    => 'settings',
                                'function' => 'load_settings',
                                'filename' => 'settings.php',
                                'filepath' => 'hooks'
                                );

C - контроллер

class MY_Controller extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        defined('SITE_ACCESS_ENABLED') ? print SITE_ACCESS_ENABLED : print "NULL";
    }
}

Как я понимаю * post_controller_constructor *, это то, что он загружается после инициализации контроллера, но до выполнения конструктора. Очевидно, что мои определенные константы не работают ни в одном конструкторе, в то время как константы из config / constants.php работают.

Любая помощь и понимание очень ценится, поскольку крючки являются совершенно новыми для меня.

1 Ответ

0 голосов
/ 19 августа 2011

Ну, post_controller_constructor происходит именно тогда.После того, как конструктор завершил создание контроллера: -).

Вам нужно запустить его на pre_controller и самостоятельно управлять созданием модели, или вам придется подождать, пока метод контроллера не будетвызывается до того, как вы сможете получить доступ к значениям.К сожалению.

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