2011-11-22 12 views

答えて

1

postExecuteメソッドは、各アクション呼び出しの最後に実行されます。

class myFilter extends sfFilter { 

    public function execute($filterChain) { 

     // Code that is executed before the action is executed 

     $filterChain->execute(); 

     // Code that is executed after the action has been executed 

    } 

} 

symfonyにおいて完全な実行が一つの大きな「フィルタ・チェーン」であるので、これは...あなたが見ている場合:ここで
は、あなたが同様に実行した後にコードを実行するためにフィルタを使用することができますdocumentation

+0

これは、モジュール内のすべてのアクションのために、ではないアプリです。 – greg0ire

9

ですfilters.ymlで詳細を確認すると、最初にrenderingフィルタが呼び出され、securityフィルタ、cacheフィルタ、最後にexecutionフィルタが呼び出されます。 実行フィルタは、実際に要求を実行するフィルタです(コントローラやすべてを呼び出します)。

これを説明すると、キャッシュフィルタは、チェーンを降りる前に、有効な出力がキャッシュ内で利用可能かどうかをチェックし、それを返します。今度はチェーン内の次のフィルタを実行し、それが返ってくると、後続の要求がキャッシュを使用できるように出力を保存します。

2

あなたはアクションクラスでこのメソッドを追加する必要があります。

public function postExecute() 
    { 
    // do something 
    } 
関連する問題