omanshardt/doctrine-base-entities

辅助库,为 doctrine 实体提供基本功能,例如设置创建和修改日期以及实体的交错校验和(每个实体与其前驱实体进行校验和)

1.1.1 2018-04-17 10:20 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:55:15 UTC


README

此 Zend 模块提供基础类以简化 doctrine 实体的处理。目前它包括

  • 两个抽象实体类
  • 一个通用存储库类
  • 一个服务类

Latest Version Total Downloads Software License

安装

composer require omanshardt/doctrine-base-entities

实体类

  • MBBaseEntity 通过提供 createdmodified 属性及其访问器方法以及适当的生命周期事件方法(在持久化和更新时设置创建和修改日期)来简化创建和修改日期的处理。因此,不需要在每一个实体类中单独实现。此外,此类定义了一个抽象类 getTextIdentifier(),它与 getString() 方法非常相似,应该返回实体的合适字符串表示形式。

  • MBInterleavedChecksumEntity 从提供的记录数据创建一个简单的校验和,以及从提供的记录数据及其前一个记录(前驱)的数据创建一个交错校验和。它定义了一个抽象方法 getInterityData(),需要在具体的实体类中实现,并返回一个数组,其中包含应该包含在校验和中的数据。此类还将其前驱的 ID 保存到当前记录中。

存储库类

  • MBInterleavedChecksumEntityRepository 提供了 findLatest() 方法,该方法返回相应表中最新的记录。目前,它通过 ID 来实现(这意味着只有在 ID 是递增的情况下,这才能按预期工作)。

服务类

  • IntegrityService 提供了 getValidatedEntities() 方法,该方法返回所有实体的列表,并检查其有效性。此结果类似于存储库的 findAll() 方法,但带有验证,因为验证是一个耗时过程,不应在每次 findAll() 操作中发生。

使用方法

要使用 MBBaseEntity,请将以下字段添加到与实体相关的表中。

  • created (DateTime)
  • modified (DateTime)

在具体的实体类中扩展 MBBaseEntity。在具体类中添加一个 getTextIdentifier() 方法,该方法返回实体的合适字符串表示形式。

要使用 MBInterleavedChecksumEntityRepository,执行使用 MBBaseEntity 所需的所有操作(这是因为 MBInterleavedChecksumEntityRepository 扩展了 MBBaseEntity),并将以下字段添加到与实体相关的表中。

  • simple_checksum (varchar(1000))
  • interleaved_checksum (varchar(1000))
  • predecessor_id (int)

在具体的实体类中扩展 MBInterleavedChecksumEntityRepository。在具体类中添加一个 getInterityData() 方法,该方法返回应包含在简单和交错校验和中的数据数组。