トップページ > 1. ドキュメント > 1.3. CharcoalPHPの応用 > 1.3.1. コアコンポーネント(応用) > コアフック

コアフック

コアフックとは

「フック」とは「鉤(かぎ)」の意味で、プログラミングの世界では「何かをきっかけに処理を行う」ことを指します。コアフックの「コア」とはフレームワークの中心的な処理を指しますので、コアフックを使うことでフレームワークの中心的な処理を行っている途中でアプリケーションまたはプラグインからタイミングを指定して処理を実装することができます。

コアフックのタイミングとしては、以下のものがあります。

-ブートストラップ処理の開始・終了時
-フレームワーク初期化の開始・終了時
-クラスローダ登録処理の開始・終了時
-例外ハンドラ登録処理の開始・終了時
-ユーザロガー登録処理の開始・終了時
-セッションハンドラ登録処理の開始・終了時
-セッション開始処理の開始・終了時
-ルータ登録処理の開始・終了時
-プロシージャ転送処理の開始・終了時
-DIコンテナ作成処理の開始・終了時
-レスポンスフィルタ登録処理の開始・終了時
-プロシージャ処理の開始・終了時
-セッション保存処理の開始・終了時
-フレームワーク終了処理の開始・終了時

コアフックジェクトはCharcoal_ICoreHookインタフェースを実装する必要があり、フレームワークまたはweb_appパス上の「classes/core_hooks」にクラスファイルを配置する必要があります。

フレームワークがどのコアフックを使用するかは、プロファイル設定の「CORE_HOOKS」オプションで指定します。「CORE_HOOKS」の設定がされていない場合は、フレームワークはコアフックを呼び出しません。また、「CORE_HOOKS」オプションには複数のコアフックを指定することができますが、その場合はコアの処理状態ごとに指定した順番でフックが呼び出されることになります。

プロファイル設定例

上記の場合、my_hook1, my_hook2, my_hook3の順でフックが呼び出されます(それぞれのオブジェクトのcallbackメソッドがコールされる)。

Pocket

Comments are closed.