Class
Response
A PSR-7 response.
Introduction#
Immutable, as PSR-7 requires: the with...() methods return a modified copy. The reason phrase
defaults to the standard one for the status code (Response::PHRASES). The body is a
StreamInterface: StringStream, ResourceStream or EmptyStream.
Class synopsis#
class Response implements ResponseInterface, MessageInterface {
/* Methods */
public Response::__construct(
int $statusCode = 200,
array $headers = [],
?StreamInterface $body = null,
string $protocolVersion = '1.1',
?string $reasonPhrase = null
)
public Response::getStatusCode(): int
public Response::withStatus($code, $reasonPhrase = ''): ResponseInterface
public Response::getReasonPhrase(): string
public Response::getProtocolVersion(): string
public Response::withProtocolVersion($version): MessageInterface
public Response::getHeaders(): array
public Response::hasHeader($name): bool
public Response::getHeader($name): array
public Response::getHeaderLine($name): string
public Response::withHeader($name, $value): MessageInterface
public Response::withAddedHeader($name, $value): MessageInterface
public Response::withoutHeader($name): MessageInterface
public Response::getBody(): StreamInterface
public Response::withBody($body): MessageInterface
}Constants#
| Name | Value | Description |
|---|---|---|
PHRASES | array ( 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', 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', 511 => 'Network Authentication Required', ) | Standard HTTP status code/reason phrases. |
Methods#
| Method | Description |
|---|---|
__construct | Creates a response. |
getStatusCode | Gets the response status code. |
withStatus | Returns a copy with the status $code, and $reasonPhrase, or the standard phrase for the code when it is ''. |
getReasonPhrase | Gets the response reason phrase associated with the status code. |
getProtocolVersion | Retrieves the HTTP protocol version as a string. |
withProtocolVersion | Return an instance with the specified HTTP protocol version. |
getHeaders | Returns the message headers. |
hasHeader | Checks if a header exists by the given case-insensitive name. |
getHeader | Retrieves a message header value by the given case-insensitive name. |
getHeaderLine | Retrieves a comma-separated string of the values for a single header. |
withHeader | Return an instance with the provided value replacing the specified header. |
withAddedHeader | Return an instance with the specified header appended with the given value. |
withoutHeader | Return an instance without the specified header. |
getBody | Gets the body of the message. |
withBody | Return an instance with the specified message body. |
Examples#
$response = new Response(404, ['Content-Type' => 'text/plain'], new StringStream('Not found'));
$response->getStatusCode(); // 404
$response->getReasonPhrase(); // "Not Found"
$stream = new UnbufferedStream();
$response = $response->withBody($stream);See also#
RequestA PSR-7 outgoing, client-side request.UnbufferedStreamA PSR-7 stream for a body that is still being produced, read once and in order.