2004年2月アーカイブ
http://www.manucorp.com/archives/pear-dev/200402/msg00222.php
http://www.manucorp.com/archives/pear-dev/200402/msg00224.php
http://www.manucorp.com/archives/pear-dev/200402/msg00225.php
http://www.manucorp.com/archives/pear-dev/200402/msg00227.php
http://www.manucorp.com/archives/pear-dev/200402/msg00228.php
今年のスーパーヒット。面白すぎです。
この前なかなかご機嫌だった、PEAR の HTML_QuickForm の更なる楽しみを増やすべく、add-on Package に当たる HTML_QuickForm_Controller にチャレンジしてみる。
「that allows building of multipage forms」とか、「basic implementation of the PageController pattern would look like ホゲホゲ」とか書いてあってやっぱ気になってたんだよねー、といいつつ Documents を読むも、HTML_QuickForm 並に分からん。(Introduction が真面目に書いてあるだけ幾分マシだが。)
しゃーねー、直接 Source の中身を見てやれーと思いつつ Package を Download し覗いてみると、examples dir に凄い分かりやすい sample があったりする。Introduction に Advanced usage examples とか説明してたから、もっと高度なテク紹介かと思っちゃったよ。
で、sample source を見つつ実際に動かしてみて一目瞭然。HTML_QuickForm 各機能に外っ面の仮面を被せて動くコントローラっちゅうことや。HTML_QuickForm の中でも Renderer の指定などで多数動作方法のある表示部分においてもしっかり準備されてて、Smarty でのレンダリングも問題なく出来そう。
実際に見てみて分かったのが、「Multipage Form」の意味することは、順に遷移していくような Form Page ってことで、「質問 A Form」→「質問 B Form」→「質問 C Form」のような一見簡単そうに見えて実は「進む/戻るボタン」「入力値判定」などなどめんどい処理をしなくちゃいけないようなページを作るのも
(1) HTML_QuickForm Controller Page を Form page 分作成
(2) Controller に Add
(3) Validate + 遷移終了時の動作決定
(4) Controller run
という簡単なステップで作れてしまう。
さらに各 Page で行う Action に細かな処理を付随させられる。こりゃあ面白い。複数あるアンケートページの一括コントロールのようなものを想像してたのでちと肩透かしだったが、これはこれでええもんだわー。
