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