5

请解释什么

  • 模型
  • 实体
  • 表网关
  • 映射器
  • 水合器

以及如何在 zf2 应用程序中协同工作。

请不要提供博客文章的链接。我需要简单的大图解释


据我了解,这些是相同的:?

Model    == Entity
Hydrator == Mapper
4

2 回答 2

7

如果我们以一个数据库表为例。然后:

  • 模型将代表一个行类,其中类变量是列。
  • Entity 与Doctrine使用的 Model 概念相同。
  • TableGateway 是Table Gateway 模式的一部分。它将包含有关表名的信息。这是所有查询方法所在的地方。用于所有zf2 示例
  • 映射器是数据映射器模式的一部分。这是处理 TableGateway 正在做的相同问题的更高级方法。
  • Hydrator 正在将您的选择查询行结果从数组更改为模型对象。如果未提供,则 zf2 将使用 ArrayObject 代替。
于 2013-05-19T07:16:13.043 回答
1

模型可以是实体,但严格来说,模型是内部具有业务逻辑的实体。对于简单的系统,模型是一个实体。

Mapper是RDBMS中用于处理对象持久化的一种方式,它是一种在对象属性和行列之间相互转换的工具。

Hydrator 是一种在数据源和对象(模型或实体)之间交换数据的工具,数据源可以是 RDBMS 或其他东西(Web 服务、NoSQL 等)。

Mappers 包含更详细的 RDBMS 持久性解决方案,例如延迟加载、缓存、事务等。

TableGateway 是对 DB 表的抽象,但表通常不是真实世界对象的持久化,它为我们提供了一种以 OOP 风格访问关系数据的方式。

于 2013-06-21T09:04:23.450 回答