Symfony Guzzle внедряет разных клиентов в автосервисы - PullRequest
0 голосов
/ 17 мая 2018

Я хочу внедрить клиентское жало в мои сервисы, оно очень хорошо работает для одного клиента.

services.yml
// ....
GuzzleHttp\ClientInterface: "@eight_points_guzzle.client.client1"

Когда я внедряю его в мой клиент, он правильно настроен
Но!
У меня есть два разных клиента в моей конфигурации для внедрения в службы.
Я проверил, чтобы создать класс для определенного настроенного клиента, который расширяет основной клиент следующим образом:

namespace AppBundle\Service\Guzzle;

use GuzzleHttp\Client;

class ClientApi extends Client
{

    /**
     * ClientApi constructor.
     */
    public function __construct(array $config)
    {
        parent::__construct($config);
    }
}

И я добавляю конфигурацию так:

services.yml
// ...
AppBundle\Service\Guzzle\ClientApi: "@eight_points_guzzle.client.api"

Но каждый раз, когда я пытаюсь внедрить его в другой сервис с автоматической проводной связью, подобный этому:

MyClass{
    public function __construct(EngineInterface $twig, ClientApi $clientApi)
    {
        $this->twig         = $twig;
        $this->guzzleClient = $clientApi;
    }
}

Возвращает мне эту ошибку:

Type error: Argument 2 passed to AppBundle\Service\MyClass::__construct()  
must be an instance of AppBundle\Service\Guzzle\ClientApi,
instance of GuzzleHttp\Client given, ....

любая помощь будет приветствоваться

...