EC-CUBE:フックポイントのタイプ別、呼ばれるタイミング

EC-CUBEにはプラグイン開発用にいくつかの処理割り込みポイント(フックポイント)が用意されていますが、それぞれが正確にはどのタイミングで呼ばれているかを把握しておくと、無駄な作業やミスを減らすことができます。

というわけで、個人的に調査した内容をシェアしようと思います。

フックポイントの種類とタイミング表

上に行くほど処理の最初に呼び出されます。

メソッド名 フックポイント名/その他イベント タイプ
init() ディスプレイオブジェクト生成  
preProcess スーパーフックポイント
トランザクショントークン処理  
(フックポイント)_action_before ローカルフックポイント
process() なし  
  action() SC_FormParam_construct SC_FormParamフックポイント
  sendResponse() (フックポイント)_action_after ローカルフックポイント
process スーパーフックポイント
ビューへページオブジェクトを割り当て  
prefilterTransform  
レスポンス用HTMLの書き出し  
outputfilterTransform  

例外としてPHPのオートロード機能でSC_系のクラスを入れ替えることができる「loadClassFileChange」フックポイントがありますが、詳しくはプラグイン開発の仕様書に記載がありますので、ここでは省略します。

フォームのモード(mode)はいつでも取得できる?

Form要素に常に設定されている「mode」ですが、LC_Page_Exクラスを継承したページオブジェクトであれば、getMode()でいつでも取得できます。

というのも、この値はどこかのタイミングで格納されるものではなく、getMode()を実行することで常に「$_SERVER」の値から取得してきてくれるためです。

ただし、modeがいつでも取れるからといって「どのタイミングでもフォームのデータがページオブジェクトに格納されている」と勘違いしないように気をつけましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

2014-01-05