使用doctrine.event_listener

时间:2018-04-11 15:27:24

标签: symfony doctrine

我有一个Symphony 3.4项目,有超过150个类,几乎所有类都声明了doctrine.event_listener的postLoad方法。

因此,我在postLoad上有超过150个调用,并且只为每个请求执行极少数的方法,因为我在PostLoad中检查了if实例化的类是每个方法使用的类。

public function postLoad(LifecycleEventArgs $args)
{
    $article = $args->getEntity();
    if ($article instanceof Article) { 

如果我正在加载另一个实体,则代码不会执行,但无论如何都会触发postLoad。

当类甚至没有实例化时,有没有办法避免这个调用(postLoad)?

谢谢!!!

1 个答案:

答案 0 :(得分:0)

找到了解决方案。

https://github.com/doctrine/DoctrineBundle/issues/650

使用标记doctrine.orm.entity_listener作为侦听器。