我想延长EntityManager使用的原则EntityManagerDecorator,并与参考基地遇到了问题EntityManager在UnitOfWork传递到存在prePersist通过事件$eventArgs。
它看起来像EntityManager被传递到UnitOfWork在EntityManager::__construct的时候UnitOfWork被创建。
我想到了一个解决方案可能是,我可以替代默认UnitOfWork的MyEntityManagerDecorator::getUnitOfWork(),如:
public function getUnitOfWork()
{
if ($this->unitOfWork === null) {
$this->unitOfWork = new UnitOfWork($this);
}
return $this->unitOfWork;
}
Run Code Online (Sandbox Code Playgroud)
但是我注意到UnitOfWork::__construct()需要一个EntityManagernot anEntityManagerInterface所以这是行不通的。
我正在寻找如何MyEntityManagerDecorator从 prePersist$eventArgs->getEntityManager()而不是 base 中获取EntityManager。我想这样做,而不直接继承的EntityManager。文档还说“您永远不应该尝试从 EntityManager 继承:继承不是 EntityManager 的有效扩展点。” .
我不确定您需要什么代码示例(如果有),所以如果您需要更多信息,请告诉我。我可以MyEntityManagerDecorator按预期访问项目中的其他任何地方(到目前为止我已经尝试过)。我yml像这样设置装饰器:
my_multi_tenant_entity_manager:
public: false …Run Code Online (Sandbox Code Playgroud)