omanshardt / doctrine-base-entities
辅助库,为 doctrine 实体提供基本功能,例如设置创建和修改日期以及实体的交错校验和(每个实体与其前驱实体进行校验和)
Requires
- php: >=5.3.0
- doctrine/dbal: ~2.5
- doctrine/orm: ~2.5
This package is not auto-updated.
Last update: 2024-09-29 05:55:15 UTC
README
此 Zend 模块提供基础类以简化 doctrine 实体的处理。目前它包括
- 两个抽象实体类
- 一个通用存储库类
- 一个服务类
安装
composer require omanshardt/doctrine-base-entities
实体类
-
MBBaseEntity
通过提供created
和modified
属性及其访问器方法以及适当的生命周期事件方法(在持久化和更新时设置创建和修改日期)来简化创建和修改日期的处理。因此,不需要在每一个实体类中单独实现。此外,此类定义了一个抽象类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()
方法,该方法返回应包含在简单和交错校验和中的数据数组。