Psr18Client
in package
implements
ClientInterface
PSR-18 клиент поверх {@see Client}.
Принимает PSR-7 запрос, выполняет его через конвейер клиента (повторы, перенаправления, защита от SSRF, cookie и прочие звенья) и возвращает PSR-7 ответ, созданный переданными PSR-17 фабриками. Ответы 4xx/5xx возвращаются как есть (требование PSR-18). Сетевые сбои выбрасываются как NetworkError, ошибки построения запроса — как RequestError. Тело, сохранённое в файл, отдаётся потоком из файла без загрузки в память.
Table of Contents
Interfaces
- ClientInterface
Methods
- __construct() : mixed
- discover() : self
- Создать клиент, найдя установленную реализацию PSR-17 автоматически.
- sendRequest() : ResponseInterface
- {@inheritDoc}
Methods
__construct()
public
__construct(Client $client, ResponseFactoryInterface $responseFactory, StreamFactoryInterface $streamFactory) : mixed
Parameters
- $client : Client
-
клиент, выполняющий запросы
- $responseFactory : ResponseFactoryInterface
-
фабрика PSR-7 ответов
- $streamFactory : StreamFactoryInterface
-
фабрика PSR-7 потоков
discover()
Создать клиент, найдя установленную реализацию PSR-17 автоматически.
public
static discover([Client|null $client = null ][, array<int, array{0: string, 1: string}> $candidates = self::KNOWN_FACTORIES ]) : self
Проверяются cloud-castle/http-response, nyholm/psr7, guzzlehttp/psr7 и laminas/laminas-diactoros — в этом порядке.
Parameters
- $client : Client|null = null
-
клиент или
nullдля Client::create() - $candidates : array<int, array{0: string, 1: string}> = self::KNOWN_FACTORIES
-
пары «класс фабрики ответов — класс фабрики потоков»
Tags
Return values
self —PSR-18 клиент
sendRequest()
{@inheritDoc}
public
sendRequest(RequestInterface $request) : ResponseInterface
Parameters
- $request : RequestInterface
Tags
Attributes
- #[Override]