2011-07-07 4 views
0

私がやっていることは、ORMまたはActive Record Patternと呼ばれています。シンプルな「ORM/ActiveRecord」パターンの作成

エンティティ/データベーステーブルが継承するEntityベースクラスがあります。これらのクラスは

  • のような方法を見つける
  • findBy
  • findAllBy
  • 挿入
  • 更新
  • (列データのため
  • ゲッター&セッターを削除するなど。名前、タイトルなどを持っています)を魔法にかける方法

問題今、データベース接続を作成する方法は?

  • 依存性の注入は - 複雑に聞こえる...
  • これらのクラスが設定されることを期待することが、グローバル変数を使用しますか? - 正しく聞こえない
  • すべてのデータベース接続情報を含むEntityの継承基本クラスを持っていますか? - 右の音が聞こえません

多分私は間違っていますか?私はあらゆるアイデアに開放されています。私は、(例えばDoctrineを使わずに)簡単なフレームワークを作りたいと思っています。このフレームワークの仕組みの基礎を私に与えるでしょう。また、小さなプロジェクトの場合は、大きなフレームワークを使用すると複雑なものになる可能性があります。

答えて

0

あなたが試みていることについては、それほど単純ではありません。その複雑なこと:-)

通常、DB接続(またはそれをラップする何らかの種類のオブジェクト)への参照を保持する、ある種の基本エンティティマネージャまたはテーブルクラスが必要です。 saveまたはdeleteメソッドが呼び出され、マネージャがdbの変更に必要なクエリを実行すると、すべてのエンティティがマネージャに渡されます。

このマネージャを挿入することも、シングルトンにすることもできます。たとえば、インスタンス化されたときにクラスをフェッチすることもできます。

私があなただったら私はPHP Objects Patterns and Practices by Matt Zandstraをチェックアウトします。いくつかの基本的な実装例でこれらのパターンに入ります。

関連する問題