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

Symfony 6无法自动注入第三方ServiceClient的问题求助

解决Symfony 6中第三方ServiceClient依赖注入报错问题

报错原因是Microsoft\BingAds\Auth\ServiceClient的构造函数参数$serviceClientType没有类型提示,Symfony自动装配无法识别该参数的取值,需要显式配置参数值,以下是两种可行方案:

方案1:关闭自动装配,手动配置构造参数

在config/services.yaml中直接指定服务的所有构造参数,适合参数取值固定的场景:

Microsoft\BingAds\Auth\ServiceClient:
    autowire: false
    arguments:
        $serviceClientType: 'CustomerManagementService' # 替换为你实际需要的Bing Ads服务类型
        $authorizationData: '@App\Service\YourAuthorizationDataService' # 引用已注册的授权数据服务
        $apiEnvironment: 'production' # 可选值:production/sandbox
        $options: {} # 按需传入配置数组,可省略

方案2:保留自动装配,通过参数绑定指定无类型参数

在全局默认配置中绑定无类型参数的取值,让Symfony自动装配时能识别:

services:
    _defaults:
        autowire: true
        autoconfigure: true
        bind:
            $serviceClientType: 'ReportingServiceV13' # 绑定参数到固定值
            $apiEnvironment: 'sandbox'

    Microsoft\BingAds\Auth\ServiceClient:
        autowire: true
        arguments:
            # 若$authorizationData是有类型的类实例,Symfony会自动注入;否则需显式指定
            $authorizationData: '@App\Service\YourAuthorizationDataService'

注意事项

  • $serviceClientType的具体值需参考Bing Ads官方文档,对应你要调用的API服务类型;
  • $authorizationData如果是Microsoft\BingAds\Auth\AuthorizationData类的实例,只要该类已被Symfony自动注册为服务,即可自动注入;
  • 若$options有自定义配置,直接传入数组即可。

内容的提问来源于stack exchange,提问作者Filip Stojanovic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 22:14:54