表層系と処理系でコントローラー

このへんの続き。
http://d.hatena.ne.jp/noopable/20090201/1233445916
http://d.hatena.ne.jp/noopable/20090201/1233528374
これを実現したいとする。

処理の流れを再確認

  1. ルーティング
  2. ページクラス(ページコントローラーを起動)
    • どんなページにするのか、どんなコンテキストなのかなど表層レベルでの判定を行う。
    • 必要な処理系への処理依頼と、処理結果の格納先を送る。($request $response)
      • 処理依頼時には、権限情報なども伝搬したい。
  3. 処理系のコントローラーで処理のループ
    • 指示を解釈して処理し結果を格納する
  4. ビュー
    • ページクラスで指定されたレイアウトに、処理系で追加されたウィジェットをrenderして配置して出力する。

処理のたらいまわしについては、コントローラーにレシピを渡し、コントローラー側でそのレシピを$requestに入れて_forwardさせる。