@Tereverda

Symfony ScopingHttpClient и HttpClientInterface конфликт?

Код работает корректно, но phpstan выдает такое предупреждение.
httpClient использую, как компонент без самого Symfony
Все делал, как в мануале по примеру

Property App\Entity\Account\GdePosylka::$httpClient (Symfony\Component\HttpClient\ScopingHttpClient) does not accept
Symfony\Contracts\HttpClient\HttpClientInterface.


use Exception;
use Symfony\Component\HttpClient\HttpClient;
use Symfony\Component\HttpClient\ScopingHttpClient;

class GdePosylka
{
    private $token = 'бла бла'; // API ключ

    private $rootUrl = 'https://gdeposylka.ru';

    private $httpClient;

    public function __construct()
    {
        // Активируем авторизацию по токену для всех запоросов
        $this->httpClient = HttpClient::create();
        $this->httpClient = new ScopingHttpClient( // --- ругается на эту строчку
            $this->httpClient,
            [
                $this->rootUrl => [
                    'headers' => [
                        'Content-Type' => 'application/json',
                        'X-Authorization-Token' => $this->token,
                    ],
                ],
            ]
        );
    }
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
Все делал, как в мануале по пример

В мануале свойства сервисов типизированы, у вас - нет.

Добавьте типизацию свойства с клиентом:
private HttpClientInterface $httpClient;
Либо не используйте её как временную переменную:
$httpClient = HttpClient::create();
$this->httpClient = new ScopingHttpClient(
    $httpClient,
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы