在symfony2中设置运行时服务的方法调用



是否可以在运行时在Symfony2中设置对服务的方法调用?

我想在运行时设置这样的东西:

calls:
            - [ setEventDispatcher, [ @event_dispatcher ] ]

场景是:
onKernel事件上有一个监听器,它将检查请求中是否设置了参数,然后将方法调用添加到容器中的服务
所以我想,懒惰的负载会被保留下来。

我看到构建器中有一个方法setMethodCalls(),所以也许我可以使用它?

我认为在您的捆绑包中,您应该从SymfonyComponentDependencyInjectionLoaderYamlFileLoader扩展并重写方法parseDefinition(),以便不仅获取calls部分,还获取您想要使用的一些条件的自定义部分。

最后,您将拥有类似这样的服务配置:

calls:
    always:
        - [ setEventDispatcher, [ @event_dispatcher ] ]
    on_condition:
        variable: "value"

希望它能帮助。。。

最新更新