You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 13:25:45