Так как я планирую обновить версию Symfony, я хочу удалить все устаревшие версии. Я не могу понять, как удалить мои последние две ошибки.
Один
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;
}
то, что это создает, является клиентом жрета с моим клиентом (настроенный в config.yml)
eight_points_guzzle.client .trigger_api
Я использую этот комплект: https://github.com/8p/EightPointsGuzzleBundle
Есть идеи, как это исправить?
Заранее спасибо,
Привет кролик
Краткий ответ: Добавьте следующую строку в ваш services.yml вашего приложения:
services:
GuzzleHttp\ClientInterface: "@eight_points_guzzle.client.trigger_api"
Обратите внимание, что это в YAML формат, если вы используете другой, настроить соответственно.
Длинный ответ: автопроводка в Symfony изменилась Документация по электромонтажу
Ваш сервис имеет ClientInterface $ client как зависимость, и эта зависимость автоматически передается Symfony. Symfony использовал для автоматической передачи по типу, но это не рекомендуется. Теперь необходимо определить службу с интерфейсом в качестве имени и псевдонима для ресурса, который нужно внедрить.
Других решений пока нет …