mof/timestampable

自动生成Doctrine实体属性创建和更新的日期

v2.1.0 2019-07-14 14:11 UTC

This package is auto-updated.

Last update: 2024-09-14 16:08:29 UTC


README

Build Status

演示

这个小巧的库允许你在Doctrine项目中自动处理实体某些属性的创建和更新。

如何安装

你需要通过composer来安装它

composer require mof/timestampable

然后你需要注册注解并将事件订阅者添加到Doctrine事件管理器中

AnnotationRegistry::registerLoader('class_exists'); // 这将注册注解

$annotationReader = new AnnotationReader();
$eventManager->addEventSubscriber(new TimestampableSubscriber($annotationReader));

你可以给TimestampableSubcriber构造函数提供任何实现Doctrine\Common\Annotations\Reader接口的类。

然后你就可以开始了。

用法

在你的实体中,你可以添加属性将监听的事件,有2个事件可供选择

/**
 * When an entity is created
 * @var \DateTime
 * @ORM\Column(type="datetime", name="created_at")
 * @Timestampable(on=Timestampable::ON_CREATE)
 */
protected $createdAt;
/**
 * When an entity is updated (the date is also set when an entity is created)
 * @var \DateTime
 * @ORM\Column(type="datetime", name="updated_at")
 * @Timestampable(on=Timestampable::ON_UPDATE)
 */
protected $updatedAt;

测试

你可以通过克隆项目然后输入以下命令来运行测试

composer install
vendor/bin/codecept run

测试使用sqlite作为后台数据库,更多详细信息请参阅 https://php.ac.cn/manual/fr/sqlite.installation.php