機能要望 > その他 > EC-CUBE で O/R Mapper 的なもの |
その他
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
nanasess |
投稿日時: 2009/10/27 11:05
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2314 |
EC-CUBE で O/R Mapper 的なもの 大河内です.
通勤途中に閃いたので書いてみました. EC-CUBE で Java の JDO のような O/R マッパーが実現できないか... というアイディアです. あくまでも案なので, 本当に実現できるかどうか未定ですが, いかがでしょうか? 最近のトレンドな PHP のフレームワークをよく知らないので, もっと良いのがあるよとか, 教えていただけたらと思います. PHP4, 5 対応で, ここまでやってるのは見たことないので, 無いものは作ってしまえ的な発想です. あわよくば, EC-CUBE2.5 で実現できたらなぁと思います. みなさまのご意見をお聞かせください. 良さげな感じでしたら, チャレンジしてみたいと思います. ■ 概要 Java の JDO(Java Data Objects - JSR243) のような O/R Mapper を EC-CUBE で実現する. ■ サンプルコード(案) DB に INSERT するのはこんな感じ.
DB からデータを取得する場合
複数のレコードを取得する場合は, キーを配列で渡す. $clients には, dtb_client の連想配列が入る. 同じキーが複数存在した場合は, IN 句の SQL になる.
LIKE 検索は, 連想配列のキーに suffix をつける. suffix のルールによって, いろいろな検索条件の指定ができそう
■ 実装(案) - 各テーブルのメタデータは, Builder パターンを利用して, PersistenceManager に関連するメタデータ用のクラスで実装する - 各DBの差異も, 上記のメタデータ用クラスで吸収する. - SELECT とか, INSERT とかの処理は, PersistenceManager クラスが抽象化して行う. PEAR::DB とか, PDO に対するドライバを提供して, 差異を吸収する ■ 長所 - DB を意識しなくてよい - ソースコードがものすごくシンプルになる - 慣れればメンテしやすい - たぶん, EC-CUBE 以外でも使用可能 ■ 短所 - もしかしたら車輪の再発明? - 慣れるまで大変 - SQL をゴリゴリ書けない - PHP4 で, どこまで実現できるか不明 - PersistenceManager とか, Builder 用のクラスがものすごいことになりそう - あんまり速くない(たぶん) |
フラット表示 | 前のトピック | 次のトピック |