Я пытаюсь использовать ClientBuilder
Elasticsearch с помощью Symfony 6. Я получаю следующую ошибку
The HTTP client Symfony\Component\HttpClient\Psr18Client is not supported for custom options
Это код, который я пробовал. У меня были те же строки кода в laravel, которые работали.
$hosts = ['https://localhost:9200'];
$client = ClientBuilder::create()
->setHosts($hosts)
->setSSLVerification(false)
->setBasicAuthentication('elastic', 'password')
->build();
Только что столкнулся с той же проблемой в приложении Laravel 9 (наряду с некоторыми другими ошибками в пакете).
Обязательно настройте клиент вручную, иначе он использует \Http\Discovery\Psr18ClientDiscovery
для поиска первого класса, расширяющего требуемый интерфейс \Psr\Http\Client\ClientInterface
. В нашем случае это Symfony\Component\HttpClient\Psr18Client
, который пока не поддерживается (см. https://github.com/elastic/elasticsearch-php/issues/990).
$hosts = ['https://localhost:9200'];
$client = ClientBuilder::create()
->setHttpClient(new \GuzzleHttp\Client)
->setHosts($hosts)
->setSSLVerification(false)
->setBasicAuthentication('elastic', 'password')
->build();
$clientBuilder
идентично ClientBuilder::create()
. Отредактировал мой ответ, не могу ответить здесь правильно.
Как установить ClientBuilder::create вручную?