symfony - 检测到服务 "security.context"的循环引用

标签 symfony dependency-injection twig

我尝试注入(inject)模板服务,这就是我得到的。

<service id="myproject_notification.service.mail" class="%myproject_notification.service.mail.class%">
    <argument type="service" id="mailer" />
    <argument type="service" id="templating" />
</service>

2014-06-10 12-37-10

如果我从依赖项中评论或删除模板服务,一切都会正常运行。我看到了有关此问题的旧问题,但似乎我是目前唯一遇到此问题的人。我做错了什么吗?

Composer.json

"symfony/symfony": "~2.4",
"twig/extensions": "~1.0",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~2.3",
"sensio/framework-extra-bundle": "~3.0",
"sensio/generator-bundle": "~2.3",
"incenteev/composer-parameter-handler": "~2.0",

Composer.lock

"name": "symfony/symfony",
"version": "v2.5.0",
...
"name": "twig/twig",
"version": "v1.15.1",

最佳答案

您应该始终尽量避免将容器直接注入(inject)您的服务。

我认为解决“循环引用”问题以及可能的性能问题的最佳解决方案是使用“Lazy Services” » 从 Symfony 2.3 开始可用的功能。

只需在服务容器配置中将您的依赖项标记为 lazy 并安装 ProxyManager Bridge(在上面的 Lazy Services 文档中查找详细信息)。

希望对您有所帮助,干杯。

关于symfony - 检测到服务 "security.context"的循环引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24139115/

相关文章:

java - 如何在处理/java eclipse 项目中访问其他类中没有构造函数的主类对象?

java - Guice:在创建模块之前实例化单例

php - Symfony2 中使用 Twig 的动态主题

symfony - 如何调试 Twig?

javascript - 在 html.twig symfony2 中导入 js

php - 如何迭代 DomCrawler 结果并搜索特定元素

javascript - 如何将数据从 eventSources 提供给 EventListener

forms - EntityType 的 choice_value 正在删除重复值

symfony - 使用 cap 部署创建目录时权限被拒绝 :setup

Angular 7 库 - 检测到循环依赖(指令、服务、模块)