モジュール毎にErrorHandlingを行う
この記事は古い記事で、正常に動作しない可能性が高い記事です。
ControllerPluginを自作した場合の記述例は「[Zend Framework]Module毎にErrorHandlerを定義する(改訂版)」に投稿されていますので、こちらもあわせて参照してください。
モジュール単位でErrorHandlingを行いたい場合があったので覚え書きとして。
モジュール単位でのエラーハンドラーの指定は必要か?
必要になる場面も少ないかとは思いますが、モジュール単位でやる理由としては「デザインが管理画面と一般ユーザー向けデザインが違う」などが有るため、モジュール別で分けてみます。
書いてみる
モジュール単位でErrorHandlingを行う場合はBootstrapなどに記述しておきます。
Bootstrapに記述するなら、application直下に有るBootstrapに記述します。
たとえば、Bootstrap内に「_iniErrorHandling」のようにメソッドを建て、中に以下のように記述します。
$this->bootstrap("FrontController");$front = $this->getResource("FrontController") ;
$front->registerPlugin(new Zend_Controller_Plugin_ErrorHandler(array(
"module" => "[module_name]",
"controller" => "[controller_name]",
"action" => "[action_name]"
)));
複数のモジュールに対応する
複数のモジュールに対応するにはメソッドチェーンで記述していったりします。
$this->bootstrap("FrontController");$front = $this->getResource("FrontController") ;
$front->registerPlugin(new Zend_Controller_Plugin_ErrorHandler(array(
"module" => "[module_name]",
"controller" => "[controller_name]",
"action" => "[action_name]"
)))
->registerPlugin(new Zend_Controller_Plugin_ErrorHandler(array(
"module" => "[module_name2]",
"controller" => "[controller_name2]",
"action" => "[action_name2]"
)));
何でもかんでも
Bootstrapに記述するのはあまり良くないとは思いますが、手っ取り早く扱うには便利っちゃ便利ですけどね。