无法自动连接供应商服务:没有类型提示,应显式配置其值

Cannot autowire vendor service: has no type-hint, you should configure its value explicitly

提问人:Filip Stojanovic 提问时间:8/10/2023 更新时间:8/10/2023 访问量:51

问:

在我的 Symfony 6 应用程序中,我试图在我的文件中使用依赖注入来绑定一些参数,但出现错误:service.yaml

无法自动连接服务“Microsoft\BingAds\Auth\ServiceClient”:方法“__construct()”的参数“$serviceClientType”没有类型提示,应显式配置其值。

在 YAML 文件中:

Microsoft\BingAds\Auth\ServiceClient:
    autowire: true

它的问题是它是供应商库包的一部分,所以我无法编辑它。

也许没有必要,但类构造函数看起来像这样:ServiceClient

public function __construct($serviceClientType, $authorizationData, $apiEnvironment, $options = array())
    {
        ...
    }

有人可以帮助解决如何克服这个错误吗?

谢谢

php symfony 依赖注入 yaml 自动连线

评论

0赞 Dylan KAS 8/10/2023
你知道你要传递给serviceclient构造函数什么值吗?
0赞 Cerad 8/10/2023
澄清一下,autowire 尚未实现感知。直到 Symfony 8 才安排好时间。在那之前,它需要一些提示,例如类型提示来完成它的工作。因此,它根本无法处理这个特定的类。您需要根据下面的答案手动接线。您可能还想看看是否有任何 Symfony Bing Ads 捆绑包。定义服务是捆绑软件的重要组成部分。可能会为您节省一些工作或举个例子。
0赞 Dylan KAS 8/10/2023
让我发笑,人们可以期待 Symfony 8 中一些 chatgpt 式的服务自动接线和你的答案
0赞 Cerad 8/10/2023
Symfony 8 可能有点乐观,但用不了多久,你就可以将应用程序传递给 AI 并取回一个优化的容器。

答:

0赞 Michael Sivolobov 8/10/2023 #1

它告诉你自动布线不起作用,因为参数不是类型提示的。所以在:service.yaml

Microsoft\BingAds\Auth\ServiceClient:
    arguments:
        $serviceClientType: YOUR_VALUE_HERE
        $authorizationData: YOUR_VALUE_HERE
        $apiEnvironment: YOUR_VALUE_HERE