ヘルパーがだめだめ
海外ではウェブのフォームで確認画面を出さないのはどうやらわりと一般的らしいが、少なくとも日本では一般的ではない。いくつかウェブを調べたら「確認画面なんていらないよね」といってる日本人技術者と思しき人たちはいるようだが、間違いなく彼らは間違っている。その真意には明らかに「ユーザビリティ考慮」の精神が欠けているからだ。どう転んでもウェブアプリのフォームで「確認画面をはさむ」という処理ははずせないのだ。
でもってcakePHP。いくら便利なscaffoldといってもデータ登録に確認画面はない。「入力=>完了」で終わりだ。ウェブを検索するとアプリのフレーム自動生成のbake.phpから出来たスクリプトを修正することで確認画面を実現されている方がいらっしゃった(こちら)。どうもこのページ、いろいろなサイトから参照されていて、cakePHPで確認画面を作る際の重要参考資料の位置づけとなっているようだ。こういうふうにスクリプトを惜しげもなく公開されていらっしゃる方には敬意を表します。
しかし・・・わざわざ確認画面用のビューを入力画面のとは別に作成しなくてはいけない。確認画面なんて入力画面とほとんど同じにもかかわらず、である。
今までmojaviを使っていたときはPEARのQuickFormを採用していたので、freeze()というメソッド一つで制御できていた。つまりフォームと確認画面のテンプレートを共通のファイル1つでまかなっていた。なんとかこれを実現したい。
作らなくてはいけないのは2つ。「コントローラー中での一般化された登録の仕組み」とヘルパー。仕組みはなんとなく今までの考え方をcakePHPに移植すれば出来そう。ヘルパーは現在のヘルパーを継承・拡張し、フォームがfreezeしたかどうかで表示を変更しさえすればよいはず・・・。
あと2日、cakePHPに時間を費やしてここまで作りたい。これを作って、さらに登録済み情報の編集機能を実装すれば、今後の開発はすべてmojaviからcakePHPに移行できる。
少し気合をいれて開発してみることにする(2日ということは細切れに時間を使って1週間くらいかかるということになりそうだけれど・・・)。