CloudCastle Curl

Client
in package

FinalYes

Настраиваемый HTTP-клиент — точка входа пакета.

Оборачивает обработчик конвейером middleware (повторы → перенаправления → пользовательские звенья → защита от SSRF) и выполняет запросы. Значения по умолчанию безопасны. Экземпляр неизменяем: методы with* возвращают копию, поэтому один базовый клиент можно безопасно донастраивать под задачу.

Table of Contents

Methods

__construct()  : mixed
baseUri()  : Uri|null
Базовый адрес для относительных ссылок.
create()  : self
Создать клиент со стандартным конвейером (повторы, перенаправления, SSRF).
headers()  : Headers
Заголовки по умолчанию.
options()  : RequestOptions
Настройки выполнения по умолчанию.
pool()  : Pool
Создать пул для параллельного выполнения запросов.
request()  : PendingRequest
Начать построение запроса к адресу.
send()  : Response
Выполнить готовый запрос через конвейер.
sendAsync()  : Promise
Отложенно выполнить запрос: обмен произойдёт при первом ожидании промиса.
withBaseUri()  : self
Копия клиента с базовым адресом: относительные ссылки в {@see Client::request()} разрешаются от него по RFC 3986.
withCookieJar()  : self
Копия клиента с включённой поддержкой cookie на базе хранилища.
withDefaultHeader()  : self
Копия клиента с добавленным заголовком по умолчанию.
withHandler()  : self
Копия клиента с другим обработчиком (например, {@see \CloudCastle\Curl\Handler\MockHandler}).
withMiddleware()  : self
Копия клиента с добавленным внутренним звеном конвейера.
withOptions()  : self
Копия клиента с другими настройками по умолчанию.

Methods

__construct()

public __construct([HandlerInterface $handler = new CurlHandler() ][, MiddlewareStack $stack = new MiddlewareStack() ][, RequestOptions $options = new RequestOptions() ][, Headers $headers = new Headers(['User-Agent' => 'cloud-castle/curl']) ][, Uri|null $baseUri = null ]) : mixed
Parameters
$handler : HandlerInterface = new CurlHandler()

завершающий обработчик обмена

$stack : MiddlewareStack = new MiddlewareStack()

конвейер middleware

$options : RequestOptions = new RequestOptions()

настройки выполнения по умолчанию

$headers : Headers = new Headers(['User-Agent' => 'cloud-castle/curl'])

заголовки по умолчанию

$baseUri : Uri|null = null

базовый адрес для относительных ссылок или null

baseUri()

Базовый адрес для относительных ссылок.

public baseUri() : Uri|null
Return values
Uri|null —

базовый адрес или null

create()

Создать клиент со стандартным конвейером (повторы, перенаправления, SSRF).

public static create([RequestOptions|null $options = null ], MiddlewareInterface ...$middleware) : self
Parameters
$options : RequestOptions|null = null

настройки по умолчанию или null

$middleware : MiddlewareInterface

дополнительные звенья (перед защитой от SSRF)

Return values
self —

настроенный клиент

headers()

Заголовки по умолчанию.

public headers() : Headers
Return values
Headers —

заголовки

pool()

Создать пул для параллельного выполнения запросов.

public pool([int $concurrency = 10 ]) : Pool
Parameters
$concurrency : int = 10

максимум одновременных запросов

Return values
Pool —

пул запросов

request()

Начать построение запроса к адресу.

public request(string $url[, array<string, scalar|array<string|int, scalar>|null> $variables = [] ]) : PendingRequest

Адрес может быть шаблоном RFC 6570 (/users/{id}{?fields*}) — тогда переменные подставляются из $variables. Относительный адрес разрешается от базового (Client::withBaseUri()).

Parameters
$url : string

адрес или шаблон адреса

$variables : array<string, scalar|array<string|int, scalar>|null> = []

переменные шаблона

Return values
PendingRequest —

конструктор запроса

send()

Выполнить готовый запрос через конвейер.

public send(Request $request) : Response
Parameters
$request : Request

запрос

Return values
Response —

ответ

sendAsync()

Отложенно выполнить запрос: обмен произойдёт при первом ожидании промиса.

public sendAsync(Request $request) : Promise
Parameters
$request : Request

запрос

Return values
Promise —

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

withBaseUri()

Копия клиента с базовым адресом: относительные ссылки в {@see Client::request()} разрешаются от него по RFC 3986.

public withBaseUri(string $baseUri) : self
Parameters
$baseUri : string

базовый адрес (например, https://api.example.com/v1/)

Return values
self —

новый клиент

withCookieJar()

Копия клиента с включённой поддержкой cookie на базе хранилища.

public withCookieJar(CookieJar $jar) : self
Parameters
$jar : CookieJar

хранилище cookie

Return values
self —

новый клиент

withDefaultHeader()

Копия клиента с добавленным заголовком по умолчанию.

public withDefaultHeader(string $name, string $value) : self
Parameters
$name : string

имя заголовка

$value : string

значение заголовка

Return values
self —

новый клиент

withHandler()

Копия клиента с другим обработчиком (например, {@see \CloudCastle\Curl\Handler\MockHandler}).

public withHandler(HandlerInterface $handler) : self
Parameters
$handler : HandlerInterface

новый обработчик

Return values
self —

новый клиент

withMiddleware()

Копия клиента с добавленным внутренним звеном конвейера.

public withMiddleware(MiddlewareInterface $middleware) : self
Parameters
$middleware : MiddlewareInterface

добавляемое звено

Return values
self —

новый клиент

withOptions()

Копия клиента с другими настройками по умолчанию.

public withOptions(RequestOptions $options) : self
Parameters
$options : RequestOptions

новые настройки

Return values
self —

новый клиент

On this page

Search results