MockResponse
        
        extends Response
    
    
            
            in package
            
        
    
    
    
Representation of an outgoing, server-side response.
Per the HTTP specification, this interface includes properties for each of the following:
- Protocol version
- Status code and reason phrase
- Headers
- Message body
Table of Contents
Properties
- $body : string|null
- Message body
- $bodyFormat : string
- Type of format the body is in.
- $cookieStore : CookieStore
- CookieStore instance.
- $CSP : ContentSecurityPolicy
- Content security policy handler
- $headerMap : array<string|int, mixed>
- Holds a map of lower-case header names and their normal-case key as it is in $headers.
- $headers : array<string, Header|array<int, Header>>
- List of all HTTP request headers.
- $pretend : bool
- If true, will not write output. Useful during testing.
- $protocolVersion : string
- Protocol version
- $reason : string
- The current reason phrase for this response.
- $statusCode : int
- The current status code for this response.
- $statusCodes : array<string|int, mixed>
- HTTP status codes
- $validProtocolVersions : array<string|int, mixed>
- List of valid protocol versions
Methods
- __construct() : mixed
- Constructor
- addHeader() : $this
- Adds a header (not a header value) with the same name.
- appendBody() : $this
- Appends data to the body of the current message.
- appendHeader() : $this
- Adds an additional header value to any headers that accept multiple values (i.e. are an array or implement ArrayAccess)
- deleteCookie() : $this
- Sets a cookie to be deleted when the response is sent.
- download() : DownloadResponse|null
- Force a download.
- getBody() : string|null
- Returns the Message's body.
- getCookie() : array<string, Cookie>|Cookie|null
- Returns the cookie
- getCookies() : array<string, Cookie>
- Returns all cookies currently set.
- getCookieStore() : CookieStore
- Returns the `CookieStore` instance.
- getCSP() : ContentSecurityPolicy
- getHeader() : array<string|int, mixed>|Header|null
- Returns a single header object. If multiple headers with the same name exist, then will return an array of header objects.
- getHeaderLine() : string
- Retrieves a comma-separated string of the values for a single header.
- getHeaders() : array<string, Header>
- Returns an array containing all headers.
- getJSON() : string|null
- Returns the current body, converted to JSON is it isn't already.
- getPretend() : bool
- For testing.
- getProtocolVersion() : string
- Returns the HTTP Protocol Version.
- getReasonPhrase() : string
- Gets the response reason phrase associated with the status code.
- getStatusCode() : int
- Gets the response status code.
- getXML() : bool|string|null
- Retrieves the current body into XML and returns it.
- hasCookie() : bool
- Checks to see if the Response has a specified cookie or not.
- hasHeader() : bool
- Determines whether a header exists.
- header() : Header|array<int, Header>|null
- Returns a single Header object. If multiple headers with the same name exist, then will return an array of header objects.
- headers() : array<string, Header|array<int, Header>>
- Returns an array containing all Headers.
- misbehave() : void
- Artificial error for testing
- noCache() : $this
- Sets the appropriate headers to ensure this response is not cached by the browsers.
- populateHeaders() : void
- Populates the $headers array with any headers the server knows about.
- prependHeader() : $this
- Adds an additional header value to any headers that accept multiple values (i.e. are an array or implement ArrayAccess)
- redirect() : $this
- Perform a redirect to a new URL, in two flavors: header or location.
- removeHeader() : $this
- Removes a header from the list of headers we track.
- send() : $this
- Sends the output to the browser.
- sendBody() : $this
- Sends the Body of the message to the browser.
- sendHeaders() : $this
- Sends the headers of this HTTP response to the browser.
- setBody() : $this
- Sets the body of the current message.
- setCache() : $this
- A shortcut method that allows the developer to set all of the cache-control headers in one method call.
- setContentType() : $this
- Sets the Content Type header for this response with the mime type and, optionally, the charset.
- setCookie() : $this
- Set a cookie
- setDate() : $this
- Sets the date header
- setHeader() : $this
- Sets a header and it's value.
- setJSON() : $this
- Converts the $body into JSON and sets the Content Type header.
- setLastModified() : $this
- Sets the Last-Modified date header.
- setLink() : $this
- Set the Link Header
- setProtocolVersion() : $this
- Sets the HTTP protocol version.
- setStatusCode() : $this
- Return an instance with the specified status code and, optionally, reason phrase.
- setXML() : $this
- Converts $body into XML, and sets the correct Content-Type.
- formatBody() : false|string
- Handles conversion of the data into the appropriate format, and sets the correct Content-Type header for our response.
- getHeaderName() : string
- Takes a header name in any case, and returns the normal-case version of the header.
- sendCookies() : void
- Actually sets the cookies.
- checkMultipleHeaders() : void
- dispatchCookies() : void
- doSetCookie() : void
- Extracted call to `setcookie()` in order to run unit tests on it.
- doSetRawCookie() : void
- Extracted call to `setrawcookie()` in order to run unit tests on it.
- hasMultipleHeaders() : bool
Properties
$body
Message body
        protected
            string|null
    $body
    
    
    
    
    
    
$bodyFormat
Type of format the body is in.
        protected
            string
    $bodyFormat
     = 'html'
        Valid: html, json, xml
$cookieStore
CookieStore instance.
        protected
            CookieStore
    $cookieStore
    
    
    
    
    
    
$CSP
Content security policy handler
        protected
            ContentSecurityPolicy
    $CSP
    
    
    
    
    
    
$headerMap
Holds a map of lower-case header names and their normal-case key as it is in $headers.
        protected
            array<string|int, mixed>
    $headerMap
     = []
        Used for case-insensitive header access.
$headers
List of all HTTP request headers.
        protected
            array<string, Header|array<int, Header>>
    $headers
     = []
        [name => Header] or [name => [Header1, Header2]]
$pretend
If true, will not write output. Useful during testing.
        protected
            bool
    $pretend
     = true
    
    
    
    
    
$protocolVersion
Protocol version
        protected
            string
    $protocolVersion
    
    
    
    
    
    
$reason
The current reason phrase for this response.
        protected
            string
    $reason
     = ''
        If empty string, will use the default provided for the status code.
$statusCode
The current status code for this response.
        protected
            int
    $statusCode
     = 200
        The status code is a 3-digit integer result code of the server's attempt to understand and satisfy the request.
$statusCodes
HTTP status codes
        protected
        static    array<string|int, mixed>
    $statusCodes
     = [
    // 1xx: Informational
    100 => 'Continue',
    101 => 'Switching Protocols',
    102 => 'Processing',
    // http://www.iana.org/go/rfc2518
    103 => 'Early Hints',
    // http://www.ietf.org/rfc/rfc8297.txt
    // 2xx: Success
    200 => 'OK',
    201 => 'Created',
    202 => 'Accepted',
    203 => 'Non-Authoritative Information',
    // 1.1
    204 => 'No Content',
    205 => 'Reset Content',
    206 => 'Partial Content',
    207 => 'Multi-Status',
    // http://www.iana.org/go/rfc4918
    208 => 'Already Reported',
    // http://www.iana.org/go/rfc5842
    226 => 'IM Used',
    // 1.1; http://www.ietf.org/rfc/rfc3229.txt
    // 3xx: Redirection
    300 => 'Multiple Choices',
    301 => 'Moved Permanently',
    302 => 'Found',
    // Formerly 'Moved Temporarily'
    303 => 'See Other',
    // 1.1
    304 => 'Not Modified',
    305 => 'Use Proxy',
    // 1.1
    306 => 'Switch Proxy',
    // No longer used
    307 => 'Temporary Redirect',
    // 1.1
    308 => 'Permanent Redirect',
    // 1.1; Experimental; http://www.ietf.org/rfc/rfc7238.txt
    // 4xx: Client error
    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 Timeout',
    409 => 'Conflict',
    410 => 'Gone',
    411 => 'Length Required',
    412 => 'Precondition Failed',
    413 => 'Content Too Large',
    // https://www.iana.org/assignments/http-status-codes/http-status-codes.xml
    414 => 'URI Too Long',
    // https://www.iana.org/assignments/http-status-codes/http-status-codes.xml
    415 => 'Unsupported Media Type',
    416 => 'Requested Range Not Satisfiable',
    417 => 'Expectation Failed',
    418 => "I'm a teapot",
    // April's Fools joke; http://www.ietf.org/rfc/rfc2324.txt
    // 419 (Authentication Timeout) is a non-standard status code with unknown origin
    421 => 'Misdirected Request',
    // http://www.iana.org/go/rfc7540 Section 9.1.2
    422 => 'Unprocessable Content',
    // https://www.iana.org/assignments/http-status-codes/http-status-codes.xml
    423 => 'Locked',
    // http://www.iana.org/go/rfc4918
    424 => 'Failed Dependency',
    // http://www.iana.org/go/rfc4918
    425 => 'Too Early',
    // https://datatracker.ietf.org/doc/draft-ietf-httpbis-replay/
    426 => 'Upgrade Required',
    428 => 'Precondition Required',
    // 1.1; http://www.ietf.org/rfc/rfc6585.txt
    429 => 'Too Many Requests',
    // 1.1; http://www.ietf.org/rfc/rfc6585.txt
    431 => 'Request Header Fields Too Large',
    // 1.1; http://www.ietf.org/rfc/rfc6585.txt
    451 => 'Unavailable For Legal Reasons',
    // http://tools.ietf.org/html/rfc7725
    499 => 'Client Closed Request',
    // http://lxr.nginx.org/source/src/http/ngx_http_request.h#0133
    // 5xx: Server error
    500 => 'Internal Server Error',
    501 => 'Not Implemented',
    502 => 'Bad Gateway',
    503 => 'Service Unavailable',
    504 => 'Gateway Timeout',
    505 => 'HTTP Version Not Supported',
    506 => 'Variant Also Negotiates',
    // 1.1; http://www.ietf.org/rfc/rfc2295.txt
    507 => 'Insufficient Storage',
    // http://www.iana.org/go/rfc4918
    508 => 'Loop Detected',
    // http://www.iana.org/go/rfc5842
    510 => 'Not Extended',
    // http://www.ietf.org/rfc/rfc2774.txt
    511 => 'Network Authentication Required',
    // http://www.ietf.org/rfc/rfc6585.txt
    599 => 'Network Connect Timeout Error',
]
    
    
    
    
    
$validProtocolVersions
List of valid protocol versions
        protected
            array<string|int, mixed>
    $validProtocolVersions
     = ['1.0', '1.1', '2.0', '3.0']
    
    
    
    
    
Methods
__construct()
Constructor
    public
                    __construct(App $config) : mixed
    The param $config is no longer used.
Parameters
- $config : App
Tags
addHeader()
Adds a header (not a header value) with the same name.
    public
                    addHeader(string $name, string $value) : $this
    Use this only when you set multiple headers with the same name,
typically, for Set-Cookie.
Parameters
- $name : string
- $value : string
Return values
$thisappendBody()
Appends data to the body of the current message.
    public
                    appendBody(string $data) : $this
    Parameters
- $data : string
Return values
$thisappendHeader()
Adds an additional header value to any headers that accept multiple values (i.e. are an array or implement ArrayAccess)
    public
                    appendHeader(string $name, string|null $value) : $this
    Parameters
- $name : string
- $value : string|null
Return values
$thisdeleteCookie()
Sets a cookie to be deleted when the response is sent.
    public
                    deleteCookie([string $name = '' ][, string $domain = '' ][, string $path = '/' ][, string $prefix = '' ]) : $this
    Parameters
- $name : string = ''
- $domain : string = ''
- $path : string = '/'
- $prefix : string = ''
Return values
$thisdownload()
Force a download.
    public
                    download([string $filename = '' ][, string|null $data = '' ][, bool $setMime = false ]) : DownloadResponse|null
    Generates the headers that force a download to happen. And sends the file to the browser.
Parameters
- $filename : string = ''
- 
                    The name you want the downloaded file to be named or the path to the file to send 
- $data : string|null = ''
- 
                    The data to be downloaded. Set null if the $filename is the file path 
- $setMime : bool = false
- 
                    Whether to try and send the actual MIME type 
Return values
DownloadResponse|nullgetBody()
Returns the Message's body.
    public
                    getBody() : string|null
    Return values
string|nullgetCookie()
Returns the cookie
    public
                    getCookie([string|null $name = null ][, string $prefix = '' ]) : array<string, Cookie>|Cookie|null
    Parameters
- $name : string|null = null
- $prefix : string = ''
- 
                    Cookie prefix. '': the default prefix 
Return values
array<string, Cookie>|Cookie|nullgetCookies()
Returns all cookies currently set.
    public
                    getCookies() : array<string, Cookie>
    Return values
array<string, Cookie>getCookieStore()
Returns the `CookieStore` instance.
    public
                    getCookieStore() : CookieStore
    Return values
CookieStoregetCSP()
    public
                    getCSP() : ContentSecurityPolicy
    Return values
ContentSecurityPolicygetHeader()
Returns a single header object. If multiple headers with the same name exist, then will return an array of header objects.
    public
                    getHeader(string $name) : array<string|int, mixed>|Header|null
    Use Message::header() to make room for PSR-7
Parameters
- $name : string
Tags
Return values
array<string|int, mixed>|Header|nullgetHeaderLine()
Retrieves a comma-separated string of the values for a single header.
    public
                    getHeaderLine(string $name) : string
    This method returns all of the header values of the given case-insensitive header name as a string concatenated together using a comma.
NOTE: Not all header values may be appropriately represented using comma concatenation. For such headers, use getHeader() instead and supply your own delimiter when concatenating.
Parameters
- $name : string
Return values
stringgetHeaders()
Returns an array containing all headers.
    public
                    getHeaders() : array<string, Header>
    Use Message::headers() to make room for PSR-7
Tags
Return values
array<string, Header> —An array of the request headers
getJSON()
Returns the current body, converted to JSON is it isn't already.
    public
                    getJSON() : string|null
    Tags
Return values
string|nullgetPretend()
For testing.
    public
                    getPretend() : bool
    Return values
boolgetProtocolVersion()
Returns the HTTP Protocol Version.
    public
                    getProtocolVersion() : string
    Return values
string —HTTP protocol version.
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.
Tags
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.
getXML()
Retrieves the current body into XML and returns it.
    public
                    getXML() : bool|string|null
    Tags
Return values
bool|string|nullhasCookie()
Checks to see if the Response has a specified cookie or not.
    public
                    hasCookie(string $name[, string|null $value = null ][, string $prefix = '' ]) : bool
    Parameters
- $name : string
- $value : string|null = null
- $prefix : string = ''
Return values
boolhasHeader()
Determines whether a header exists.
    public
                    hasHeader(string $name) : bool
    Parameters
- $name : string
- 
                    Case-insensitive header field name. 
Return values
bool —Returns true if any header names match the given header name using a case-insensitive string comparison. Returns false if no matching header name is found in the message.
header()
Returns a single Header object. If multiple headers with the same name exist, then will return an array of header objects.
    public
                    header(string $name) : Header|array<int, Header>|null
    Parameters
- $name : string
Return values
Header|array<int, Header>|nullheaders()
Returns an array containing all Headers.
    public
                    headers() : array<string, Header|array<int, Header>>
    Return values
array<string, Header|array<int, Header>> —An array of the Header objects
misbehave()
Artificial error for testing
    public
                    misbehave() : void
    noCache()
Sets the appropriate headers to ensure this response is not cached by the browsers.
    public
                    noCache() : $this
    Tags
Return values
$thispopulateHeaders()
Populates the $headers array with any headers the server knows about.
    public
                    populateHeaders() : void
    prependHeader()
Adds an additional header value to any headers that accept multiple values (i.e. are an array or implement ArrayAccess)
    public
                    prependHeader(string $name, string $value) : $this
    Parameters
- $name : string
- $value : string
Return values
$thisredirect()
Perform a redirect to a new URL, in two flavors: header or location.
    public
                    redirect(string $uri[, string $method = 'auto' ][, int|null $code = null ]) : $this
    Parameters
- $uri : string
- 
                    The URI to redirect to 
- $method : string = 'auto'
- $code : int|null = null
- 
                    The type of redirection, defaults to 302 
Tags
Return values
$thisremoveHeader()
Removes a header from the list of headers we track.
    public
                    removeHeader(string $name) : $this
    Parameters
- $name : string
Return values
$thissend()
Sends the output to the browser.
    public
                    send() : $this
    Return values
$thissendBody()
Sends the Body of the message to the browser.
    public
                    sendBody() : $this
    Return values
$thissendHeaders()
Sends the headers of this HTTP response to the browser.
    public
                    sendHeaders() : $this
    Return values
$thissetBody()
Sets the body of the current message.
    public
                    setBody(string $data) : $this
    Parameters
- $data : string
Return values
$thissetCache()
A shortcut method that allows the developer to set all of the cache-control headers in one method call.
    public
                    setCache([array<string|int, mixed> $options = [] ]) : $this
    The options array is used to provide the cache-control directives for the header. It might look something like:
 $options = [
     'max-age'  => 300,
     's-maxage' => 900
     'etag'     => 'abcde',
 ];
Typical options are:
- etag
- last-modified
- max-age
- s-maxage
- private
- public
- must-revalidate
- proxy-revalidate
- no-transform
Parameters
- $options : array<string|int, mixed> = []
Return values
$thissetContentType()
Sets the Content Type header for this response with the mime type and, optionally, the charset.
    public
                    setContentType(string $mime[, string $charset = 'UTF-8' ]) : $this
    Parameters
- $mime : string
- $charset : string = 'UTF-8'
Return values
$thissetCookie()
Set a cookie
    public
                    setCookie(array<string|int, mixed>|Cookie|string $name[, string $value = '' ][, int $expire = 0 ][, string $domain = '' ][, string $path = '/' ][, string $prefix = '' ][, bool|null $secure = null ][, bool|null $httponly = null ][, string|null $samesite = null ]) : $this
    Accepts an arbitrary number of binds (up to 7) or an associative array in the first parameter containing all the values.
Parameters
- $name : array<string|int, mixed>|Cookie|string
- 
                    Cookie name / array containing binds / Cookie object 
- $value : string = ''
- 
                    Cookie value 
- $expire : int = 0
- 
                    Cookie expiration time in seconds 
- $domain : string = ''
- 
                    Cookie domain (e.g.: '.yourdomain.com') 
- $path : string = '/'
- 
                    Cookie path (default: '/') 
- $prefix : string = ''
- 
                    Cookie name prefix ('': the default prefix) 
- $secure : bool|null = null
- 
                    Whether to only transfer cookies via SSL 
- $httponly : bool|null = null
- 
                    Whether only make the cookie accessible via HTTP (no javascript) 
- $samesite : string|null = null
Return values
$thissetDate()
Sets the date header
    public
                    setDate(DateTime $date) : $this
    Parameters
- $date : DateTime
Return values
$thissetHeader()
Sets a header and it's value.
    public
                    setHeader(string $name, array<string|int, mixed>|string|null $value) : $this
    Parameters
- $name : string
- $value : array<string|int, mixed>|string|null
Return values
$thissetJSON()
Converts the $body into JSON and sets the Content Type header.
    public
                    setJSON(array<string|int, mixed>|object|string $body[, bool $unencoded = false ]) : $this
    Parameters
- $body : array<string|int, mixed>|object|string
- $unencoded : bool = false
Return values
$thissetLastModified()
Sets the Last-Modified date header.
    public
                    setLastModified(DateTime|string $date) : $this
    $date can be either a string representation of the date or, preferably, an instance of DateTime.
Parameters
- $date : DateTime|string
Return values
$thissetLink()
Set the Link Header
    public
                    setLink(PagerInterface $pager) : $this
    Parameters
- $pager : PagerInterface
Tags
Return values
$thissetProtocolVersion()
Sets the HTTP protocol version.
    public
                    setProtocolVersion(string $version) : $this
    Parameters
- $version : string
Tags
Return values
$thissetStatusCode()
Return an instance with the specified status code and, optionally, reason phrase.
    public
                    setStatusCode(int $code[, string $reason = '' ]) : $this
    If no reason phrase is specified, will default recommended reason phrase for the response's status code.
Parameters
- $code : int
- 
                    The 3-digit integer result code to set. 
- $reason : string = ''
- 
                    The reason phrase to use with the provided status code; if none is provided, will default to the IANA name. 
Tags
Return values
$thissetXML()
Converts $body into XML, and sets the correct Content-Type.
    public
                    setXML(array<string|int, mixed>|string $body) : $this
    Parameters
- $body : array<string|int, mixed>|string
Return values
$thisformatBody()
Handles conversion of the data into the appropriate format, and sets the correct Content-Type header for our response.
    protected
                    formatBody(array<string|int, mixed>|object|string $body, string $format) : false|string
    Parameters
- $body : array<string|int, mixed>|object|string
- $format : string
- 
                    Valid: json, xml 
Tags
Return values
false|stringgetHeaderName()
Takes a header name in any case, and returns the normal-case version of the header.
    protected
                    getHeaderName(string $name) : string
    Parameters
- $name : string
Return values
stringsendCookies()
Actually sets the cookies.
    protected
                    sendCookies() : void
    checkMultipleHeaders()
    private
                    checkMultipleHeaders(string $name) : void
    Parameters
- $name : string
dispatchCookies()
    private
                    dispatchCookies() : void
    doSetCookie()
Extracted call to `setcookie()` in order to run unit tests on it.
    private
                    doSetCookie(string $name, string $value, array<string|int, mixed> $options) : void
    Parameters
- $name : string
- $value : string
- $options : array<string|int, mixed>
Tags
doSetRawCookie()
Extracted call to `setrawcookie()` in order to run unit tests on it.
    private
                    doSetRawCookie(string $name, string $value, array<string|int, mixed> $options) : void
    Parameters
- $name : string
- $value : string
- $options : array<string|int, mixed>
Tags
hasMultipleHeaders()
    private
                    hasMultipleHeaders(string $name) : bool
    Parameters
- $name : string