gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

入力->確認->完了の実装をより楽に雑にw

で…思った。c=のコマンドを「1lineあたり1つ」にしちまえば楽なんぢゃね? と。
そうすると。例えばitem系があって。今までだと

item_input = : item_input.tpl
item_confirm = : item_confirm.tpl
item_fin = : item_fin.tpl

って3つのコマンド(とクラス)を作ってたのを。
まず

item_lines = : item_

という1コマンドに集約。
で。
実装としては

class item_lines extends フロント業務基底クラス
{

function execute_auth()
{
  $this->push_clumpname('item');
  $this->do_lines_process();
}

} // end of class

で片付けて終了。
これで「入力 -> 確認 -> 完了」の画面遷移の実装終わり(笑
ついでに「編集 -> 確認 -> 完了」も片付く。
いやまぁclumpつくらにゃかんのだけどね。


ポイントは
・t=に、input/edit/confirm/fin(i/e/c/fとか略しても可ってことで)を入れて指示を出すこと
だけ。
do_lines_processhaはbase_model_richに実装するとして。
処理自体は…いったんrichにベタに書いて、必要なら後で切り出すかな?
ただの表示系もこれで片付きそう。editってことにして引数でkey渡せば片付くはず。
これで、定型的な作業からまたかなり解放されそうだなぁ。
確認画面がいらない場合は…なんか適当なスイッチ一つ作るかな。1メソッド追加のイメージかなぁ。


さて…実験かねて実装するかな!!


追記っつか本気でただのmemoだぉw

protected function do_lines_process()
{
  $type = $this->get_cgi_request()->find('t');
//var_dump($type);

  switch($type) {
    case 'edit':
    case 'e':
      $this->edit();
      break;
    case 'conf':
    case 'confirm':
    case 'c':
      $this->confirm();
      break;
    case 'fin':
    case 'f':
      $this->fin();
      break;
    default:
      $this->input();
      break;
  }
}

多分こんな処理だよねぇ。