zf2 - Zend \ Db - Model,Entity,Hydrator,Mapper,TableGateway做什么以及它们如何连接在一起?

时间:2013-05-17 08:21:58

标签: database zend-framework2 zend-db

请解释一下

  • 模型
  • 实体
  • TableGateway
  • 映射
  • 保湿
zf2应用程序中

执行如何协同工作

请不要提供博客文章的链接。我需要简单的大图片展示


据我所知,这些是相同的:?

Model    == Entity
Hydrator == Mapper

2 个答案:

答案 0 :(得分:7)

如果我们采用一个db表。然后:

  • 模型将表示一个类变量为列的行类。
  • 实体与Doctrine使用的模型概念相同。
  • TableGateway来自Table Gateway pattern。它将包含有关表名的信息。这是所有查询方法所在的位置。用于所有zf2 examples
  • Mapper是Data Mapper模式的一部分。这是处理TableGateway正在做的同样问题的更高级方法。
  • Hydrator正在将您的选择查询行结果从数组更改为Model对象。如果没有提供,那么zf2将改为使用ArrayObject。

答案 1 :(得分:1)

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

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

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

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

TableGateway是一个带有数据库表的抽象,但表通常不是现实世界对象的持久性,它为我们提供了一种以OOP样式访问关系数据的方法。