Аргументы, переданные службам, выдающим служебную ошибку отсутствия зависимости в программном обеспечении 6

#symfony4 #shopware

#symfony4 #программное обеспечение

Вопрос:

Я должен использовать HttpClientInterface на своей странице обслуживания. Итак, я определил следующим образом:

 use SymfonyContractsHttpClientHttpClientInterface;


public function __construct(HttpClientInterface $httpClient)
    {
        $this->httpClient = $httpClient;
    }
 

В моем services.xml файле я также пытаюсь передать аргумент, а также установить autowiring

 <!-- SERVICES -->
<service id="SwagMasterBundleServiceProductManager" autowire="true" autoconfigure="true">
    <argument id="SymfonyContractsHttpClientHttpClientInterface" type="service" key="$httpClient"></argument>
</service>
 

Но я получаю ошибку:

The service "SwagMasterBundleServiceProductManager" has a dependency on a non-existent service "SymfonyContractsHttpClientHttpClientInterface".

Кто-нибудь может мне помочь, что я здесь сделал не так?

Спасибо.

Ответ №1:

Вы не можете ожидать интерфейса, поскольку интерфейс должен быть реализован из конкретного класса. Итак, в вашем случае вам нужен конкретный объект — службы Symfony — это простые объекты.

Пожалуйста, сначала ознакомьтесь с основами объектно-ориентированного программирования.

Редактировать: также автоматическое подключение и определение данных служб не имеет смысла. Позвольте фреймворку определить необходимый объект или сделать это самостоятельно, но выберите один вариант, а не оба одновременно.

Комментарии:

1. хорошо, но как я могу использовать HttpClient в Shopware 6. Я использовал тот же способ в проекте symfony.