0

単純なデータベース抽象化レイヤーを作成しようとしています。Active Record と Table Data Gateway に関する記事をたくさん読みましたが、今は非常に混乱しています。

それらについてのいくつかの理論(小さな)は理解していると思いますが、それらを正確に実装する方法はわかりません。Data Table Gateway を実装することにしました。私がしたことを説明しようと思います。アドバイスをいただければ幸いです。モデルで DI のようなテーブル データ ゲートウェイを使用する必要があるたびに (たとえば、ZF2 で) 理由がわかりません。

私の場合、AbstractModel は IoC コンテナーによってコンストリクターで DbAdapter を取得するだけですが、これで問題ないかどうかはわかりません。わかりました、私の状況を説明します。私は次のクラスを持っています:

  • DbAdapter -> db 接続を作成します (PDO を使用)
  • IoC (制御コンテナーの反転)
  • AbstractModel -> コンストラクターで IoC を使用して DbAdapter を取得します。これは、DbAdapter のインスタンスを 1 つだけ保持することを意味します。このクラスには CRUD メソッドもあります。
  • 別のクラスは、db のテーブルを表します。たとえば、クラス User は AbstractModel を拡張し、テーブルの名前を返すメソッド getTable を持っています。別の SQL クエリは、テーブルを表すこのクラスにあります。これらのクラスは DbAdapter にアクセスできます。

このスキームは問題ありませんか?どうすれば改善できますか?

4

0 に答える 0