CloudCastle Curl

Psr18Client
in package
implements ClientInterface

FinalYes

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
throws
LogicException

если ни одна реализация PSR-17 не установлена

Return values
self —

PSR-18 клиент

sendRequest()

{@inheritDoc}

public sendRequest(RequestInterface $request) : ResponseInterface
Parameters
$request : RequestInterface
Tags
throws
NetworkError

при сетевом сбое

RequestError

если запрос некорректен или отклонён (например, защитой от SSRF)

Attributes
#[Override]
Return values
ResponseInterface
On this page

Search results