home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

日記/2007/07/31/Xhwlayメモ

日記/2007/07/31/Xhwlayメモ

日記 / 2007 / 07 / 31 / Xhwlayメモ
id: 69 所有者: msakamoto-sf    作成日: 2007-07-31 00:15:43
カテゴリ: Xhwlay 

Xhwlay_Runner::wipeout()を実装

ログイン・ログアウトの実装を考えていたとき。
「・・・しまった。setup-HOOKでLocationなどでリダイレクトしたとき、Flow制御全体をスキップする機能、実装してねぇ・・・。」

かくして、wipeout()が実装された。

setup-HOOKに、

function setup_check_login_redirect($hook, &$runner) {
    if ( !Foo_Bar::isLogined() ) {
        header("Location: http://....");
        $runner->wipeout();
    }
}

とかをpushして使います。

ちょっとまとめてみます。

抑止力: wipeout() >> skipPage()

下の表の記号は次のような意味です。

○:制御メソッドの呼び出しにかかわらず、実行されます。
×:制御メソッドを呼び出すことで、実行されません。
▼:呼び出しポイント
制御メソッド→ wipeout() skipPage() (Renderer無効化)
setup-HOOK
Barrier ×
Guard ×
Event ×
Page × × *1
Renderer × × ×
terminate-HOOK

以下余談、というか頭の中の妄想を踏まえて。

これで一通りlogin/logoutは固まったかな・・・。
結局、画面遷移の好みに応じて千差万別な形態がありうるわけで。
今のところ、ActorにAbstractを用意したり、同じフローでがりがり書いたり、
ログイン処理専用のフローを別に用意してsetupHOOKでリダイレクトかけたり、といろいろできる。

で、いろいろできるようにしておくのがフレームワークの仕事。
可能性、abilityだけは確保しておく。
実装を提供してそれを狭めてしまうのは、論外。
・・・ずいぶん風変わりなポリシーだけどね。でも、それがPokoXから続く、Xhwlayのポリシー。自由は、全て開発者の手に。フレームワークにより縛らない。

う~~ん・・・本末転倒。

*1: NULLを返すことでRenderer無効化

プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2008-12-23 00:16:43
md5:f805405fd786585ec795e32ae8bc3e19
sha1:267d90bcbfbc900fcb6bd2568b21224476cc004c
コメント
コメントを投稿するにはログインして下さい。