CodeIgniterには、フレームワークの機能を変更や拡張をせずに、共通処理などを実装することが可能なフック(Hook)があります。
しかし、特定のリクエストだけ共通処理をしたくない場合があるかもしれません。
そのような場合に、一時的にフック(Hook)を無効にする方法です。
概要
- フック(Hook)を一時的に無効にする
前提
- CodeIgniter 3.1.6
- PHP 7.2.1
フック(Hook)を無効にする
フック(Hook)を無効にしたい個所で、Hookクラスのメンバー変数をFALSEにします。
以降のフック(Hook)は実行されなくなります。
application/controllers/Welcome.php
$this->hook->enabled = FALSE;
coreのHookクラスでは、初期化時にenabled変数にTRUEをセットします。
Hookがコールされる際は、enabled変数がTRUEかを判定する仕組みとなっているためです。
考慮点
仕組み上、enable変数をFALSEにセットした以降しか制御ができません。
具体的には、コントローラーで実装した場合はpost_controller以降のフックポイントだけ、制御ができることになります。