VOは無駄だな・・
今はDBアクセスの際に
foreach (...){ $data = fetch(); $vo = $this->createVo(); $vo->$property = $data['colimn']; ... $vos[] = $vo; } return $vos;
のような処理を行っている。
DBで取得した配列からVOを作成して、この後テンプレートに代入するために配列に戻している。
凄く意味のない無駄な処理なので、配列をそのまま返すようにしようかな。
O/Rマッピングじゃなくなってしまうけど。
データ取得の時だけ配列で行えるようにすればいいのかな。
PHP5なら迷うことなくVO集約クラス(?)を作ってforeachに対応できるようなイテレータを書くんだが。。
テンプレートからアクションのメンバ変数をforeachすると、そこに代入されているビジネスロジックのVOがDBにアクセスを試みる。
そうすると実質的にビューからDBに接続しているようになる。
一度PHP5で作り始めてしまうと、もうPHP4に戻れないような気がして何ともかんとも。
PHP4だとreturnで返すしか無いのかなぁ。
DBから取得したデータをそのまま表示する考え方が危ないのかもしれないが、Flexyを使っていれば簡単なエスケープ処理はやってくれる。
簡単なテーブルの表示なら
$this->tableData = $this->_DAU->getArray('tableName');
こんな感じの一行で完結できるようにしてみようかな。