処理毎にクラスか関数か
そうか。
http://d.hatena.ne.jp/hawkring/20050817
2つの別の用途に用いられるアクションに対して、フィルタ・チェーンの構造は1種類しかない。一方の処理のために登録されたフィルタが、もう一方の処理に悪影響を及ぼさないことを保証するのは容易ではない(Validateはまさにこれだ)。
なんだかしっくりこなかった理由はこれか。
さっき書いた処理では、フォームからの入力でログインを実行する場合
グローバルフィルタクラス->グローバルアクションフィルタ ログインクラス ->ログイン実行フィルタ ログインクラス ->ログインフィルタ ※ ログインクラス ->ログイン実行関数 コントローラ ->アクション転送 グローバルフィルタクラス->グローバルアクションフィルタ ログインクラス ->ログインフィルタ ログインクラス ->表示関数 ビュークラス ・・・
となっている。
ここの ※ のところが問題なのか・・。
今回はログイン処理の後アクションをもう一度実行してるから表示のための(と思って最初は作った)※は意味がないけど、ログイン実行関数の後にそのままビューに行くとしたら※は実行しなければいけない。
うーん・・・ゆっくり考えよう。。