ZendFrameWorkでエラーコントローラを使おうとした時のお話し。
ZendFrameWorkのコントローラは初めからエラー処理が組み込まれてるから、ErrorControllerとerrorActionを作ってあげるだけで、本当なら終わりなのですが、このErrorControllerはデフォルトのモジュールの物が呼ばれる仕様なのに、実行中のモジュールの物が呼ばれると勘違いしてマニュアルを漁ってしまいました。
以上で終わりなので、後はてきとーにサンプルコード(for me)。
defaultモジュール以外のエラーコントローラを呼ぶ方法
$front = Zend_Controller_Front::getInstance(); $plugin = new Zend_Controller_Plugin_ErrorHandler(); $plugin->setErrorHandlerModule('nonedefault'); $front->registerPlugin($plugin);
よく忘れるのが、これ。ZendFFのプラグインはなんか最後にレジストしてあげないとダメなのね。
もちろん、「setErrorHandlerController()」や「setErrorHandlerAction()」を使ってアクションやコントローラの設定も可。
開発環境とかで、例外が発生した場合にエラー内容を表示させる設定にしてると、エラーコントローラは呼び出されないようなので気をつけましょう。
$front = Zend_Controller_Front::getInstance();
$front->throwExceptions(true);// 例外を出力 = エラーアクションを不使用