Response
in package
implements
ResponseInterface
uses
MessageTrait
PSR-7 response implementation.
Table of Contents
Interfaces
- ResponseInterface
- Representation of an outgoing, server-side response.
Constants
- 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
Properties
- $headerNames : array<string|int, string>
- $headers : array<string|int, array<string|int, string>>
- $protocol : string
- $reasonPhrase : string
- $statusCode : int
- $stream : StreamInterface|null
Methods
- __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|int, string>
$headerNames
= []
Map of lowercase header name => original name at registration
$headers
private
array<string|int, array<string|int, string>>
$headers
= []
Map of all registered headers, as original name => array of values
$protocol
private
string
$protocol
= '1.1'
$reasonPhrase
private
string
$reasonPhrase
$statusCode
private
int
$statusCode
$stream
private
StreamInterface|null
$stream
Methods
__construct()
public
__construct([int $status = 200 ][, array<string|int, string|array<string|int, 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|int, string|array<string|int, 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)
getBody()
public
getBody() : StreamInterface
Return values
StreamInterfacegetHeader()
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
stringgetHeaders()
public
getHeaders() : array<string|int, mixed>
Return values
array<string|int, mixed>getProtocolVersion()
public
getProtocolVersion() : string
Return values
stringgetReasonPhrase()
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
boolwithAddedHeader()
public
withAddedHeader(mixed $header, mixed $value) : MessageInterface
Parameters
- $header : mixed
- $value : mixed
Return values
MessageInterfacewithBody()
public
withBody(StreamInterface $body) : MessageInterface
Parameters
- $body : StreamInterface
Return values
MessageInterfacewithHeader()
public
withHeader(mixed $header, mixed $value) : MessageInterface
Parameters
- $header : mixed
- $value : mixed
Return values
MessageInterfacewithoutHeader()
public
withoutHeader(mixed $header) : MessageInterface
Parameters
- $header : mixed
Return values
MessageInterfacewithProtocolVersion()
public
withProtocolVersion(mixed $version) : MessageInterface
Parameters
- $version : mixed
Return values
MessageInterfacewithStatus()
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
staticassertHeader()
private
assertHeader(mixed $header) : void
Parameters
- $header : mixed
Tags
assertStatusCodeIsInteger()
private
assertStatusCodeIsInteger(mixed $statusCode) : void
Parameters
- $statusCode : mixed
assertStatusCodeRange()
private
assertStatusCodeRange(int $statusCode) : void
Parameters
- $statusCode : int
assertValue()
private
assertValue(string $value) : void
Parameters
- $value : string
Tags
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|array<string|int, string>> $headers) : void
Parameters
- $headers : array<string|int, string|array<string|int, string>>
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
Return values
array<string|int, string> —Trimmed header values