是否可以在运行时对 Symfony2 中的服务设置方法调用?
我想在运行时设置这样的东西:
calls:
- [ setEventDispatcher, [ @event_dispatcher ] ]
场景将是:
onKernel 事件上有一个侦听器,它将检查请求中是否设置了参数,然后将方法调用添加到容器中的服务。
所以延迟加载会被保留,我猜。
我看到构建器中有一个方法setMethodCalls(),所以也许我可以使用它?
是否可以在运行时对 Symfony2 中的服务设置方法调用?
我想在运行时设置这样的东西:
calls:
- [ setEventDispatcher, [ @event_dispatcher ] ]
场景将是:
onKernel 事件上有一个侦听器,它将检查请求中是否设置了参数,然后将方法调用添加到容器中的服务。
所以延迟加载会被保留,我猜。
我看到构建器中有一个方法setMethodCalls(),所以也许我可以使用它?
我认为在您的捆绑包中,您应该从Symfony\Component\DependencyInjection\Loader\YamlFileLoader
那里扩展并重写方法parseDefinition()
以获取不仅calls
部分,而且还包含您想要使用的某些条件的自定义部分。
最后,您将拥有如下服务配置:
calls:
always:
- [ setEventDispatcher, [ @event_dispatcher ] ]
on_condition:
variable: "value"
希望能帮助到你...