Dependency injection 您是否可以在路线中使用DIC的参数?(方法参数注入)
在我的Symfony2项目中,我有一些服务被某个标签击中,我想在控制器内部使用 因此,我试图找出将它们传递给控制器的最佳方法,并认为也许有一种方法可以通过Symfony2的整体配置系统实现这一点Dependency injection 您是否可以在路线中使用DIC的参数?(方法参数注入),dependency-injection,routing,symfony,Dependency Injection,Routing,Symfony,在我的Symfony2项目中,我有一些服务被某个标签击中,我想在控制器内部使用 因此,我试图找出将它们传递给控制器的最佳方法,并认为也许有一种方法可以通过Symfony2的整体配置系统实现这一点 # Inside routing.yml: my_controller: pattern: "/path" defaults { _controller: Bundle:Controller:action # The following line is kind of
# Inside routing.yml:
my_controller:
pattern: "/path"
defaults {
_controller: Bundle:Controller:action
# The following line is kind of what I'm looking for.
myParam: @my.tag
}
# Inside a services.yml file:
my.service:
class: Bundle\MyService
tags:
- { name: my.tag }
my.otherService:
class: Bundle\MyOtherService
tags:
- { name: my.tag }
给定上面的两个配置文件示例,我希望我的Bundle:Controller:action实例接收一个包含Bundle\MyService和Bundle\MyOtherService实例的数组
谢谢 产生了一个解决方案。然而,一些API已经改变了。即:
您覆盖的bundle方法是build,而不是registerExtensions。
您重载的扩展方法是load而不是configLoad。
只要您相应地移动这两块代码并正确地实现它,您就应该能够获得我想要的功能
遗憾的是,DIC并没有以任何方式自动完成这项工作,但需要注意的是,我确实需要获取特定标签的所有内容。不仅来自我的捆绑包,而且来自最终成为应用程序一部分的每个捆绑包