0

我正在尝试创建简单的数据库抽象层。我读了很多关于 Active Record 和 Table Data Gateway 的文章,现在我很困惑。

我认为我了解一些关于它们的理论(小),但不知道如何实现它们。我选择实现数据表网关。我会试着解释我做了什么,如果你给我一些建议,我会很高兴。我不确定为什么(例如在 ZF2 中)每次我必须在模型中使用像 DI 这样的表数据网关。

在我的情况下,我的 AbstractModel 只是通过 IoC 容器在 constrictor 中获取 DbAdapter,但我不确定这是否可以。好的,我将描述我的情况。我有以下课程:

  • DbAdapter -> 它创建数据库连接(使用 PDO)
  • IoC(控制容器反转)
  • AbstractModel -> 在构造函数中我使用 IoC 获得 DbAdapter。这意味着它只拥有一个 DbAdapter 实例。在这个类中,我也有 CRUD 方法。
  • 另一个类代表 db 中的表。例如类 User 扩展 AbstractModel 并具有返回表名称的方法 getTable。另一个 sql 查询将在代表表的此类中。这些类可以访问 DbAdapter。

这个方案可以吗?我该如何改进它?

4

0 回答 0