Documentation

Response
in package
implements ResponseInterface Uses MessageTrait

PSR-7 response implementation.

Interfaces, Classes, Traits and Enums

ResponseInterface
Representation of an outgoing, server-side response.

Table of Contents

PHRASES  = [100 => 'Continue', 101 => 'Switching Protocols', 102 => 'Processing', 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', 207 => 'Multi-status', 208 => 'Already Reported', 300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 306 => 'Switch Proxy', 307 => 'Temporary Redirect', 308 => 'Permanent Redirect', 400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Time-out', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Large', 415 => 'Unsupported Media Type', 416 => 'Requested range not satisfiable', 417 => 'Expectation Failed', 418 => 'I\'m a teapot', 422 => 'Unprocessable Entity', 423 => 'Locked', 424 => 'Failed Dependency', 425 => 'Unordered Collection', 426 => 'Upgrade Required', 428 => 'Precondition Required', 429 => 'Too Many Requests', 431 => 'Request Header Fields Too Large', 451 => 'Unavailable For Legal Reasons', 500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Time-out', 505 => 'HTTP Version not supported', 506 => 'Variant Also Negotiates', 507 => 'Insufficient Storage', 508 => 'Loop Detected', 510 => 'Not Extended', 511 => 'Network Authentication Required']
Map of standard HTTP status code/reason phrases
$headerNames  : array<string, string>
$headers  : array<string, array<string|int, string>>
$protocol  : string
$reasonPhrase  : string
$statusCode  : int
$stream  : StreamInterface|null
__construct()  : mixed
getBody()  : StreamInterface
getHeader()  : array<string|int, mixed>
getHeaderLine()  : string
getHeaders()  : array<string|int, mixed>
getProtocolVersion()  : string
getReasonPhrase()  : string
Gets the response reason phrase associated with the status code.
getStatusCode()  : int
Gets the response status code.
hasHeader()  : bool
withAddedHeader()  : MessageInterface
withBody()  : MessageInterface
withHeader()  : MessageInterface
withoutHeader()  : MessageInterface
withProtocolVersion()  : MessageInterface
withStatus()  : static
Return an instance with the specified status code and, optionally, reason phrase.
assertHeader()  : void
assertStatusCodeIsInteger()  : void
assertStatusCodeRange()  : void
assertValue()  : void
normalizeHeaderValue()  : array<string|int, string>
setHeaders()  : void
trimAndValidateHeaderValues()  : array<string|int, string>
Trims whitespace from the header values.

Constants

PHRASES

Map of standard HTTP status code/reason phrases

private mixed PHRASES = [100 => 'Continue', 101 => 'Switching Protocols', 102 => 'Processing', 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', 207 => 'Multi-status', 208 => 'Already Reported', 300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 306 => 'Switch Proxy', 307 => 'Temporary Redirect', 308 => 'Permanent Redirect', 400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Time-out', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Large', 415 => 'Unsupported Media Type', 416 => 'Requested range not satisfiable', 417 => 'Expectation Failed', 418 => 'I\'m a teapot', 422 => 'Unprocessable Entity', 423 => 'Locked', 424 => 'Failed Dependency', 425 => 'Unordered Collection', 426 => 'Upgrade Required', 428 => 'Precondition Required', 429 => 'Too Many Requests', 431 => 'Request Header Fields Too Large', 451 => 'Unavailable For Legal Reasons', 500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Time-out', 505 => 'HTTP Version not supported', 506 => 'Variant Also Negotiates', 507 => 'Insufficient Storage', 508 => 'Loop Detected', 510 => 'Not Extended', 511 => 'Network Authentication Required']

Properties

$headerNames

private array<string, string> $headerNames = []

Map of lowercase header name => original name at registration

$headers

private array<string, array<string|int, string>> $headers = []

Map of all registered headers, as original name => array of values

$reasonPhrase

private string $reasonPhrase

Methods

__construct()

public __construct([int $status = 200 ][, array<string, string|string[]> $headers = [] ][, string|resource|StreamInterface|null $body = null ][, string $version = '1.1' ][, string|null $reason = null ]) : mixed
Parameters
$status : int = 200

Status code

$headers : array<string, string|string[]> = []

Response headers

$body : string|resource|StreamInterface|null = null

Response body

$version : string = '1.1'

Protocol version

$reason : string|null = null

Reason phrase (when empty a default will be used based on the status code)

Return values
mixed

getHeader()

public getHeader(mixed $header) : array<string|int, mixed>
Parameters
$header : mixed
Return values
array<string|int, mixed>

getHeaderLine()

public getHeaderLine(mixed $header) : string
Parameters
$header : mixed
Return values
string

getHeaders()

public getHeaders() : array<string|int, mixed>
Return values
array<string|int, mixed>

getProtocolVersion()

public getProtocolVersion() : string
Return values
string

getReasonPhrase()

Gets the response reason phrase associated with the status code.

public getReasonPhrase() : string

Because a reason phrase is not a required element in a response status line, the reason phrase value MAY be null. Implementations MAY choose to return the default RFC 7231 recommended reason phrase (or those listed in the IANA HTTP Status Code Registry) for the response's status code.

Return values
string

Reason phrase; must return an empty string if none present.

getStatusCode()

Gets the response status code.

public getStatusCode() : int

The status code is a 3-digit integer result code of the server's attempt to understand and satisfy the request.

Return values
int

Status code.

hasHeader()

public hasHeader(mixed $header) : bool
Parameters
$header : mixed
Return values
bool

withStatus()

Return an instance with the specified status code and, optionally, reason phrase.

public withStatus(mixed $code[, mixed $reasonPhrase = '' ]) : static

If no reason phrase is specified, implementations MAY choose to default to the RFC 7231 or IANA recommended reason phrase for the response's status code.

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the updated status and reason phrase.

Parameters
$code : mixed

The 3-digit integer result code to set.

$reasonPhrase : mixed = ''

The reason phrase to use with the provided status code; if none is provided, implementations MAY use the defaults as suggested in the HTTP specification.

Return values
static

assertStatusCodeIsInteger()

private assertStatusCodeIsInteger(mixed $statusCode) : void
Parameters
$statusCode : mixed
Return values
void

assertStatusCodeRange()

private assertStatusCodeRange(int $statusCode) : void
Parameters
$statusCode : int
Return values
void

assertValue()

private assertValue(string $value) : void
Parameters
$value : string
Tags
see
https://tools.ietf.org/html/rfc7230#section-3.2

field-value = ( field-content / obs-fold ) field-content = field-vchar [ 1( SP / HTAB ) field-vchar ] field-vchar = VCHAR / obs-text VCHAR = %x21-7E obs-text = %x80-FF obs-fold = CRLF 1*( SP / HTAB )

Return values
void

normalizeHeaderValue()

private normalizeHeaderValue(mixed $value) : array<string|int, string>
Parameters
$value : mixed
Return values
array<string|int, string>

setHeaders()

private setHeaders(array<string|int, string|string[]> $headers) : void
Parameters
$headers : array<string|int, string|string[]>
Return values
void

trimAndValidateHeaderValues()

Trims whitespace from the header values.

private trimAndValidateHeaderValues(array<string|int, mixed> $values) : array<string|int, string>

Spaces and tabs ought to be excluded by parsers when extracting the field value from a header field.

header-field = field-name ":" OWS field-value OWS OWS = *( SP / HTAB )

Parameters
$values : array<string|int, mixed>

Header values

Tags
see
https://tools.ietf.org/html/rfc7230#section-3.2.4
Return values
array<string|int, string>

Trimmed header values

Search results