QuickFormのcontroller でのFreeze

class ActionFreeze extends HTML_QuickForm_Action {
  function perform(&$page, $actionName) {
    $page->isFormBuilt() or $page->buildForm();
    // page is invalid: don't go further
    if($page->validate()) $page->freeze();
    return $page->handle('display');
  }
}

最初どうやって,次のページでの処理をしてやればいいかわからんかったけど,
performの中にページの描画を実行してやればよかったみたい.


てっきり,先にperformを実行して,そのあとbuildFormされるのかなとか思ってた.
ただひとつ気になるのは
HTML_QuickForm_Action_Next とかHTML_QuickForm_Action_Directとかには

    $pageName =  $page->getAttribute('id');
    $data     =& $page->controller->container();
    $data['values'][$pageName] = $page->exportValues();
    $data['valid'][$pageName]  = $page->validate();

って書いてあるんだよね.これの意味がまだわかっていない.
たぶん,HTML_QuickForm_Action_Jumpとかでページ切り替わるときにsessionに
値を保存して,次のページに渡しているだけだと思うんだけどね.