gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:05:28 24 4
gpt4 key购买 nike

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

试试 1

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

类(class)引用。好的 ...

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

循环引用( 为什么?,我像在尝试 3 中一样注入(inject)容器,除了我只获得了安全上下文)

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

作品。

最佳答案

发生这种情况是因为您的安全上下文取决于此监听器,可能是通过将实体管理器注入(inject)用户提供程序。最好的解决方案是将容器注入(inject)到监听器中并懒惰地访问安全上下文。

我通常不喜欢将整个容器注入(inject)到服务中,但对 Doctrine 监听器异常(exception),因为它们是急切加载的,因此应该尽可能地懒惰。

关于symfony - 将安全上下文注入(inject)(实体监听器)类时的循环引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8708822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com