1

これは、この質問のフォローアップ質問ですが、それほど重要ではありません。

私は次のフロントコントローラープラグインを作成しました:

public function postDispatch(Zend_Controller_Request_Abstract $request)
{
    $response = $this->getResponse();
    $monitor = Zend_Registry::get('monitor');
    
    if ($response->isException())
    {
        $monitor->log($response);
    }
}

ここで、$ monitorはカスタムDBロギングクラス(Zend_Logを拡張する)のインスタンスです。

モニターのlogメソッドで、$ response-> getException()によって返されるZend_Exceptionsの配列をループします。

テストの目的で、アクションの例外を使用します。

throw new Zend_Exception('the big test', 555);

ほとんどのものは期待どおりに機能し、例外はデータベースに書き込まれます。

質問

しかし、それは二度書かれています。なんで?

4

1 に答える 1

3

ディスパッチループが2回呼び出されるためです。最初に現在のアクション、次にdefault:error:error:)ログをdispatchLoopShutdown()メソッドに配置します

于 2011-03-20T16:50:08.900 に答える