渔民/doctrine-identity-queuer

v1.0.1 2018-03-05 22:04 UTC

This package is auto-updated.

Last update: 2024-09-20 23:59:12 UTC


README

为下一次插入的实体设置队列ID。

CircleCI

描述

此包添加了一个IdentityQueuer类,允许您预先设置Doctrine实体的ID。它能够为配置了不同身份生成策略的实体执行此操作。

此包的主要用例是在单元测试期间显式设置在您的服务中某处创建的实体的ID。不建议在生产环境中使用此包,因为还有更好的方法在测试之外实现自定义ID生成。

用法

use Villermen\DoctrineIdentityQueuer\IdentityQueuer;

$identityQueuer = new IdentityQueuer($entityManager);
$identityQueuer->queueIdentity(User::class, 1234);

$user = new User()

$entityManager->persist($user);
$entityManager->flush();

// $user should have been given an id of 1234 instead of an automatically generated one!

安装

composer require --dev villermen/doctrine-identity-queuer

它是如何工作的?

IdentityQueuer会在有队列ID等待时覆盖实体的ID生成器。它订阅Doctrine的preFlush事件,首先刷新具有队列ID的实体,然后再执行实际刷新。在执行实际刷新之前,生成器会被改回,以便额外的实体会像原本那样行为。