この記事は古い記事で、正常に動作しない可能性が高い記事です。
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に記述するのはあまり良くないとは思いますが、手っ取り早く扱うには便利っちゃ便利ですけどね。

こちらの記事もどうぞ

  1. [Zend Framework]Moduleを利用し個々のLayoutを利用する
  2. [Zend Framework]WindowsのXAMPP環境でzf.batでproject以外がエラーでこける