我有一个服务,在尝试使用调用设置它时需要关闭:在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定义文件中创建Closure(或匿名函数)?我想可以通过一些编译器传递来完成,但我想知道是否可能存在解决此问题的现有解决方案。
答案 0 :(得分:5)
你可能已经解决了这个问题。但是你可以创建一个返回Closure的工厂
struct stat
您可以将其传递给addConnector调用:
some_callback:
public: false
class: callback
factory: [SomeClass\Factory, create]