Symfony是否支持匿名内联可调用工厂?如何省略方法名?
Symfony 6+ 匿名内联可调用工厂配置方法
如果你的App\GuzzleClientFactory类实现了__invoke()方法(让类本身成为可调用对象),就可以直接省略方法名,将内联服务直接赋值给factory字段,无需使用数组格式。
紧凑写法
GuzzleClient1: class: GuzzleHttp\ClientInterface factory: !service { class: 'App\GuzzleClientFactory', calls: [ { 'withBaseUri': [ 'http://example.com' ] } ] }
展开写法
GuzzleClient1: class: GuzzleHttp\ClientInterface factory: !service class: 'App\GuzzleClientFactory' calls: - withBaseUri: ['http://example.com']
Symfony DI容器会自动识别实现了__invoke的对象为可调用工厂,直接调用该方法来创建目标服务实例。
内容的提问来源于stack exchange,提问作者Vladislav Rastrusny
相关产品推荐
相关产品推荐

