2016-11-12 4 views
2

だから私は、私がオートロードされたヘルパー、ライブラリなどをたくさん持っている私のcodeigniterセットアップを持っています。私はアプリケーションのブートストラップの前に実行したい関数を書いています。関数init()を呼び出し、ヘルパーの1つで定義されていると仮定します。問題は他のオートロードされたヘルパーやライブラリなどの関数を使用しているため、自動ロードされたファイル自体でinit()を呼び出すことは、 '未定義関数Xへの呼び出し'などのために役立ちません。codeigniterでinit関数を実行する

すべてがロードされた後のinit()コール。ユーザーが異なるURLをブックマークしている可能性があるため、デフォルトコントローラーで呼び出すことはできません。

この場合、init()を呼び出す最良の方法は何ですか?

答えて

0

あなたは、たとえば、別のファイルで宣言された関数を使用することができhook

application/config/hooks.php
$hook['pre_controller'] = function() 
{ 
    // ... 
}; 

を追加します。

$hook['pre_controller'] = array(
    // ... 
    'function' => 'init' 
); 

使用可能ですが、あなたのケースでは、多くのフック、「pre_controllerは」ありあなたのコントローラが呼び出される直前にpre_controllerが呼び出されたので、フックが私にとって適切だと思われます。すべての基本クラス、ルーティング、およびセキュリティチェックが完了しました。

関連する問題