我有一项服务在尝试使用调用设置它时需要关闭:在 Symfony DI YAML 文件中。
Illuminate\Queue\QueueManager:
arguments:
app: "@app"
calls:
- [ addConnector, [ "@Illuminate\\Queue\Connector\NullConnector" ]]
我想知道是否可以将服务封装到闭包中,因为库代码不允许我插入任何其他内容。
public function addConnector($driver, Closure $resolver)
{
$this->connectors[$driver] = $resolver;
}
有没有办法在 Symfony DI 容器 YAML 定义文件中创建闭包(或匿名函数)?我想这可以通过一些编译器传递来完成,但我想知道是否可能存在针对此问题的现有解决方案。
最佳答案
您现在可能已经解决了这个问题。但是您可以创建一个返回闭包的工厂
some_callback:
public: false
class: callback
factory: [SomeClass\Factory, create]
您可以将其传递给 addConnector 调用:
Illuminate\Queue\QueueManager:
arguments:
app: "@app"
calls:
- [ addConnector, ["@Illuminate\\Queue\Connector\NullConnector", "@some_callback"]]
关于php - Symfony 依赖注入(inject) : How to represent Closure in YAML service definitions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31325750/