本日はフォームの処理に関して。主に一覧検索画面のフォームについてです。
フレームワークでフォームの処理をする場合、変数の初期値やバリデーションなどをあらかじめ読み込むオブジェクトを設定しておき、変数が増えても設定箇所のみを増やして、コード自体はそれほど変化しないのが正しいコードです。
その場合、フォームのクラスでは
- 各変数のプロパティ
- 長さ
- エラーチェック
- 初期値
等をもっておくとよいでしょう。プログラムによっては和名(ラベルに相当するもの)を持っていることもありますね。
また並行してプルダウンの値などはDBや設定ファイルから配列で取り出しましょう。
POSTがあったときはコントローラー側では大まかにわけると下記のような処理になります。
- どの処理かをわける(画面にボタンが複数ある場合)
- フォームのクラスからSQLを作成し、DBからデータを取り出す
- ページャー情報がある場合は開始と終了を決定する
ECCUBEなんかは上記の構造が比較的きれいに書かれており、私は仕事始めの時に結構助けられました。