因为我打算升级我的Symfony版本,我想删除所有的Deprecations。我无法弄清楚如何删除我的最后两个错误。
一个是
Autowiring services based on the types they implement is deprecated since Symfony 3.3 and won't be supported in version 4.0. You should rename (or alias) the "eight_points_guzzle.client.trigger_api" service to "GuzzleHttp\ClientInterface" instead.
但在我的服务中,我已经使用客户端界面注入
public function __construct(
LoggerInterface $logger,
EntityManagerInterface $em,
ClientInterface $client
) {
$this->em = $em;
$this->logger = $logger;
$this->rest = $client;
}
创建的是我的客户端的guzzle客户端(在config.yml中配置) eight_points_guzzle.client .trigger_api
我正在使用此捆绑包:https://github.com/8p/EightPointsGuzzleBundle
任何想法如何解决?
提前谢谢你, 问候兔
答案 0 :(得分:3)
简短回答:在应用程序的services.yml中添加以下行:
services:
GuzzleHttp\ClientInterface: "@eight_points_guzzle.client.trigger_api"
请注意,这是 yaml 格式,如果您使用其他格式,请相应调整。
答案很长:Symfony Autowiring documentation的自动装配已经改变 您的服务具有 ClientInterface $ client 作为依赖项,并且此依赖项由symfony自动装配。 Symfony用于按类型自动装配,但不推荐使用。现在,必须定义一个以接口作为名称的服务和要注入的资源的别名。