Copied!

PSR-7 response implementation.

Cloneable Instantiable
Methods
public __construct ( $status = 200 , array $headers = [ ] , $body = NULL , $version = '1.1' , $reason = NULL )
 
public getBody ()
public getHeader ( $header )
public getHeaderLine ( $header )
public getHeaders ()
public getProtocolVersion ()
public getReasonPhrase ()
public getStatusCode ()
public hasHeader ( $header )
public withAddedHeader ( $header , $value )
public withBody ( Psr\Http\Message\StreamInterface $body )
public withHeader ( $header , $value )
public withoutHeader ( $header )
public withProtocolVersion ( $version )
public withStatus ( $code , $reasonPhrase = '' )
Properties
private $headerNames
 
  • var array Map of lowercase header name => original name at registration
private $headers
 
  • var array Map of all registered headers, as original name => array of values
private static $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' , 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' ]
 
  • var array Map of standard HTTP status code/reason phrases
private $protocol
 
  • var string
private $reasonPhrase
 
  • var string
private $statusCode
 
  • var int
private $stream
 
  • var StreamInterface | null
Methods
private assertHeader ( $header )
private assertStatusCodeIsInteger ( $statusCode )
private assertStatusCodeRange ( $statusCode )
private normalizeHeaderValue ( $value )
private setHeaders ( array $headers )
private trimHeaderValues ( array $values )
 

Trims whitespace from the header values.

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 )

  • return string [] Trimmed header values
  • see https://tools.ietf.org/html/rfc7230#section-3.2.4
Properties
private static $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' , 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' ]
 
  • var array Map of standard HTTP status code/reason phrases
© 2020 Bruce Wells
Search Namespaces \ Classes
Configuration Numbers (0-9.) only