コントローラ共通処理部分

コントローラでの共通処理

基本的な利用方法で書いたようにコントローラやアクションを指定してメソッドを実行しますが、Zend Frameworkではコントローラ中でアクションメソッドが呼び出される前後で呼び出されるメソッドがあります。コントローラ内で次のようにメソッドを書く事でアクション実行の前後での処理が可能です。設定可能なメソッドは次の通りです。

init()

コントローラが呼び出された時の初期化処理です。

preDispatch()

アクションを実行する前の処理です。

postDispatch()

アクション実行後の処理です

順序としては、init()、predispatch()、(コントローラ内のアクション)、postDistpatch()の順で呼び出されます。

この他、ZF-Exの独自拡張として、特定のモジュールでのみ共通処理を行うようなメソッドも使用可能です。使用可能なのはpostDispatch()とpreDispatch()で、それぞれモジュール名を最初につけて(モジュール名)PreDispatch()(モジュール名)PostDispatch()とする事で指定のモジュールのみの共通処理となります。例えばadminモジュールでのみ共通処理を行いたい時はadminPreDispatch()やadminPostDispatch()とします。また、モジュール用の共通処理メソッドは任意で、使用しない場合は定義する必要はありません。

モジュール用の共通処理メソッドは、対応するメソッドの最初で呼び出され、preDispatch()やpostDispatch()よりも先に処理されます。例えばadminモジュールの場合、init()、adminPreDispatch()、preDispatch()、(コントローラ内のアクション)、adminPostDispatch()、postDistpatch()の順序でメソッドが呼び出されます。

全てのコントローラの基底クラスとしてAppControllerがあるので、各コントローラで個別の処理を行いたい場合はそれぞれのコントローラ、共通処理としたい場合はAppController内に追加して下さい。