multibytesystems / mb-components
辅助库,为处理数据驱动应用程序中的常见任务提供基本功能
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:01:58 UTC
README
此Zend模块提供基本类,以简化处理Doctrine实体。目前它包括以下内容:
- 两个抽象实体类
- 一个通用仓库类
- 一个服务类
安装
composer require multibytesystems/mb-components
实体类
-
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()
方法。