Response
in package
implements
Stringable
Неизменяемый ответ на запрос.
Содержит код состояния, заголовки, тело, тайминги и итоговый адрес (с учётом перенаправлений). Предоставляет удобные проверки класса статуса и разбор тела в структурированные форматы: JSON (Response::json()), XML (Response::xml()), YAML (Response::yaml()), NEON (Response::neon()) или автоматически по формату ответа (Response::parsed()). Приведение к строке возвращает сырое тело. При потоковой загрузке в файл тело в памяти не хранится — доступен путь назначения через Response::sinkPath().
Table of Contents
Interfaces
- Stringable
Methods
- __construct() : mixed
- __toString() : string
- Привести ответ к строке — возвращает сырое тело.
- body() : string
- Тело ответа.
- certificates() : array<int, array<string|int, mixed>>
- Цепочка сертификатов сервера (при включённом сборе в {@see Tuning}).
- decodeWith() : T
- Разобрать тело пользовательским декодером.
- effectiveUrl() : string
- Итоговый адрес после перенаправлений.
- header() : string
- Значения заголовка, объединённые запятой.
- headers() : Headers
- Заголовки ответа.
- info() : array<string|int, mixed>
- Полные сведения об обмене (`curl_getinfo`): IP и порт сервера, размеры, число соединений, версия протокола и прочее.
- isClientError() : bool
- Является ли ответ ошибкой клиента (класс 4xx).
- isRedirect() : bool
- Является ли ответ перенаправлением (класс 3xx).
- isServerError() : bool
- Является ли ответ ошибкой сервера (класс 5xx).
- isSuccessful() : bool
- Успешен ли ответ (класс 2xx).
- json() : mixed
- Разобрать тело ответа как JSON.
- neon() : mixed
- Разобрать тело ответа как NEON.
- parsed() : mixed
- Разобрать тело автоматически по формату ответа.
- reason() : string
- Пояснительная фраза статуса.
- redirects() : array<int, string>
- Адреса пройденных перенаправлений в порядке переходов.
- saveTo() : int
- Сохранить тело ответа в файл.
- sinkPath() : string|null
- Путь файла-приёмника при потоковой загрузке.
- status() : int
- Код состояния HTTP.
- throwIfError() : $this
- Выбросить исключение, если ответ — ошибка клиента или сервера (4xx/5xx).
- timing() : Timing
- Тайминги выполнения.
- withRedirects() : self
- Копия ответа с историей перенаправлений.
- xml() : array<string, mixed>
- Разобрать тело ответа как XML.
- yaml() : mixed
- Разобрать тело ответа как YAML.
Methods
__construct()
public
__construct(int $status, string $reason, Headers $headers, string $body[, Timing $timing = new Timing() ][, string $effectiveUrl = '' ][, string|null $sinkPath = null ][, array<string|int, mixed> $info = [] ][, array<int, string> $redirects = [] ]) : mixed
Parameters
- $status : int
-
код состояния HTTP
- $reason : string
-
пояснительная фраза статуса
- $headers : Headers
-
заголовки ответа
- $body : string
-
тело ответа (пустое при потоковой загрузке в файл)
- $timing : Timing = new Timing()
-
тайминги выполнения
- $effectiveUrl : string = ''
-
итоговый адрес после перенаправлений
- $sinkPath : string|null = null
-
путь файла-приёмника при потоковой загрузке
- $info : array<string|int, mixed> = []
-
полные сведения об обмене (
curl_getinfo) - $redirects : array<int, string> = []
-
адреса пройденных перенаправлений (по порядку)
__toString()
Привести ответ к строке — возвращает сырое тело.
public
__toString() : string
Attributes
- #[Override]
Return values
string —тело ответа
body()
Тело ответа.
public
body() : string
Return values
string —тело (пустое при потоковой загрузке в файл)
certificates()
Цепочка сертификатов сервера (при включённом сборе в {@see Tuning}).
public
certificates() : array<int, array<string|int, mixed>>
Return values
array<int, array<string|int, mixed>> —сертификаты от сервера к корню
decodeWith()
Разобрать тело пользовательским декодером.
public
decodeWith(callable(string): T $decoder) : T
Parameters
- $decoder : callable(string): T
-
декодер тела
Tags
Return values
T —результат декодера
effectiveUrl()
Итоговый адрес после перенаправлений.
public
effectiveUrl() : string
Return values
string —адрес (может быть пустым)
header()
Значения заголовка, объединённые запятой.
public
header(string $name) : string
Parameters
- $name : string
-
имя заголовка (регистр не важен)
Return values
string —объединённые значения (пустая строка, если заголовка нет)
headers()
Заголовки ответа.
public
headers() : Headers
Return values
Headers —набор заголовков
info()
Полные сведения об обмене (`curl_getinfo`): IP и порт сервера, размеры, число соединений, версия протокола и прочее.
public
info() : array<string|int, mixed>
Return values
array<string|int, mixed> —сведения (пусто, если обработчик их не даёт)
isClientError()
Является ли ответ ошибкой клиента (класс 4xx).
public
isClientError() : bool
Return values
bool —true, если код в диапазоне 400–499
isRedirect()
Является ли ответ перенаправлением (класс 3xx).
public
isRedirect() : bool
Return values
bool —true, если код в диапазоне 300–399
isServerError()
Является ли ответ ошибкой сервера (класс 5xx).
public
isServerError() : bool
Return values
bool —true, если код >= 500
isSuccessful()
Успешен ли ответ (класс 2xx).
public
isSuccessful() : bool
Return values
bool —true, если код в диапазоне 200–299
json()
Разобрать тело ответа как JSON.
public
json([bool $associative = true ]) : mixed
Parameters
- $associative : bool = true
-
возвращать ли объекты как ассоциативные массивы
Tags
Return values
mixed —декодированное значение
neon()
Разобрать тело ответа как NEON.
public
neon() : mixed
Tags
Return values
mixed —разобранное значение (отображение, список или скаляр)
parsed()
Разобрать тело автоматически по формату ответа.
public
parsed() : mixed
Формат определяется по заголовку Content-Type и по содержимому тела. Для
JSON, XML, YAML и NEON возвращается разобранное значение; для прочих типов —
сырое тело как строка. Если заголовок и содержимое указывают на разные
форматы, разбор считается неоднозначным.
Tags
Return values
mixed —разобранное значение или сырое тело, если формат не распознан
reason()
Пояснительная фраза статуса.
public
reason() : string
Return values
string —фраза (может быть пустой)
redirects()
Адреса пройденных перенаправлений в порядке переходов.
public
redirects() : array<int, string>
Return values
array<int, string> —адреса (пусто, если перенаправлений не было)
saveTo()
Сохранить тело ответа в файл.
public
saveTo(string $path) : int
Parameters
- $path : string
-
путь назначения
Tags
Return values
int —число записанных байт
sinkPath()
Путь файла-приёмника при потоковой загрузке.
public
sinkPath() : string|null
Return values
string|null —путь или null, если тело в памяти
status()
Код состояния HTTP.
public
status() : int
Return values
int —код состояния
throwIfError()
Выбросить исключение, если ответ — ошибка клиента или сервера (4xx/5xx).
public
throwIfError() : $this
Tags
Return values
$this —этот же ответ, если он не ошибочный
timing()
Тайминги выполнения.
public
timing() : Timing
Return values
Timing —тайминги
withRedirects()
Копия ответа с историей перенаправлений.
public
withRedirects(array<int, string> $redirects) : self
Parameters
- $redirects : array<int, string>
-
адреса пройденных перенаправлений
Return values
self —новый ответ
xml()
Разобрать тело ответа как XML.
public
xml() : array<string, mixed>
Tags
Return values
array<string, mixed> —дерево элементов (текст, атрибуты, потомки)
yaml()
Разобрать тело ответа как YAML.
public
yaml() : mixed
Tags
Return values
mixed —разобранное значение (отображение, список или скаляр)