渔民 / doctrine-identity-queuer
v1.0.1
2018-03-05 22:04 UTC
Requires
- php: >=7.1
- doctrine/orm: ^2.6
Requires (Dev)
- ext-pdo_sqlite: *
- phpunit/phpunit: ^7.0
- symfony/var-dumper: ^4.0
This package is auto-updated.
Last update: 2024-09-20 23:59:12 UTC
README
为下一次插入的实体设置队列ID。
描述
此包添加了一个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的实体,然后再执行实际刷新。在执行实际刷新之前,生成器会被改回,以便额外的实体会像原本那样行为。