Filterの適用について
フィルターの雛形に続き、フィルター適用順序(というかmojaviの挙動)に関する比較的わかりやすい説明が先ほど同様の2chフレームワークスレにあった(以下引用)。
—
個々のフィルタには前処理・後処理という2段階の実行順序があって、登録した順に前処理が全て実行されてから、今度は逆順に後処理が実行される。
Actionの実行部分もフィルタの一種として扱われていて(ExecutionFilter)、全てのフィルタの登録後に登録されている。
Viewの実行(View::execute())はExecutionFilterの中で実行されている。
結果、登録順に1,2…の番号を付けた時に、
1. GlobalFilterのpre-filter1,pre-filter2…を実行
2. moduleFilterのpre-filter1,pre-filter2…を実行
3. ExecutionFilterを実行(認証や特権の判定、action処理)
4. Viewの実行
5. moduleFilterの…post-filter2,post-filter1を実行
6. GlobalFilterの…post-filter2,post-filter1を実行
という順番で処理されることになる。
—
mojaviのソースを読めばわかることだけど、この程度の情報がドキュメントとしてしっかり用意されているとうれしいんだけれど・・・。