symfony – 将安全上下文注入(实体侦听器)类时的循环引用

这里有两个问题是说注入整个服务容器应该解决这个问题.但问题见下文(注意尝试2和3之间的区别)…

尝试1

public function __construct(SecurityContext $securityContext) {
    $this->securityContext = $securityContext);  
}

参考文献好的 …

尝试2

public function __construct(ContainerInterface $container) {
    $this->securityContext = $container->get('security.context');  
}

循环引用(为什么?我注入容器就像在try 3中,除了我只有安全上下文)

尝试3

public function __construct(ContainerInterface $container) {
    $this->container = $container;  
}

作品.

这是因为您的安全上下文依赖于此侦听器,可能通过将实体管理器注入用户提供程序.最好的解决方案是将容器注入侦听器,并且懒惰地访问安全上下文.

我通常不喜欢将整个容器注入到服务中,而是与Doctrine监听器发生异常,因为它们被加载,因此应尽可能懒惰.

相关文章
相关标签/搜索