0
問題: 私のフックでいくつかの定数を定義しましたが、サブクラス化されたコントローラコンストラクタ。Codeigniter:コントローラのコンストラクタでフックで定義された定数をロードする方法
コード: A - フッククラス:
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";
}
}
方法I理解してください* post_controller_constructor *は、tコントローラーは初期化されているが、コンストラクターが実行される前に初期化されます。どうやら私の定義した定数はどのコンストラクタでも動作しませんが、定数はconfig/constants.phpから動作します。
フックは全く新しいものですから、どんな助力や洞察力があれば幸いです。
謝罪する必要はありません。明確な答えをお寄せいただきありがとうございます。私はフックを捨てて、それ以外のやり方をすることにしました。 – qwertzman