A response class intended for test cases.
_cacheDirectives
, _charset
, _contentType
, _cookies
, _file
, _fileRange
, _mimeTypes
, _protocol
, _reasonPhrase
, _status
, _statusCodes
, _streamMode
, _streamTarget
send( )
Stub the send() method so headers and output are not sent.
Cake\Http\Response::send()
__construct( array $options [] )
Constructor
$options
optional [] list of parameters to setup the response. Possible values are: - body: the response text that should be sent to the client - statusCodes: additional allowable response codes - status: the HTTP status code to respond with - type: a complete mime-type string or an extension mapped in this class - charset: the charset for the response body
__debugInfo( )
Returns an array that can be used to describe the internal state of this object.
__toString( )
String conversion. Fetches the response body as a string. Does not send headers. If body is a callable, a blank string is returned.
_clearBuffer( )
Clears the contents of the topmost output buffer and discards them
_clearHeader( string $header )
Clear header
$header
_fileRange( Cake\Filesystem\File $file , string $httpRange )
Apply a file range to a file and set the end offset.
If an invalid range is requested a 416 Status code will be used in the response.
3.4.0 Long term this needs to be refactored to follow immutable paradigms. However for now, it is simpler to leave this alone.
Cake\Filesystem\File
$file
$httpRange
_flushBuffer( )
Flushes the contents of the output buffer
_getUTCDate( string|integer|DateTime|null $time null )
Returns a DateTime object initialized at the $time param and using UTC as timezone
$time
optional null _handleCallableBody( callable $content )
Handles the callable body for backward compatibility reasons.
$content
_isActive( )
Returns true if connection is still active
_sendContent( string|callable $content )
Sends a content string to the client.
If the content is a callable, it is invoked. The callable should either return a string or output content directly and have no return value.
$content
String to send as response body or callable which returns/outputs content.
_sendFile( Cake\Filesystem\File $file , array $range )
Reads out a file, and echos the content to the client.
Cake\Filesystem\File
$file
$range
_sendHeader( string $name , string|null $value null )
Sends a header to the client.
$name
$value
optional null _setCacheControl( )
Helper method to generate a valid Cache-Control header from the options set in other methods
_setContent( )
Sets the response body to an empty text if the status code is 204 or 304
_setContentType( )
Formats the Content-Type header based on the configured contentType and charset the charset will only be set in the header if the response is of type text/*
_setCookies( )
Sets the cookies that have been added via Cake\Http\Response::cookie() before any other output is sent to the client. Will set the cookies in the order they have been set.
_setHeader( string $header , string $value )
Sets a header.
$header
$value
body( string|callable|null $content null )
Buffers the response message to be sent if $content is null the current buffer is returned
withBody()
/withStringBody()
and getBody()
instead.$content
optional null cache( string $since , string $time '+1 day' )
Sets the correct headers to instruct the client to cache the response.
$since
$time
optional '+1 day' charset( string|null $charset null )
Sets the response charset if $charset is null the current charset is returned
$charset
optional null checkNotModified( Cake\Http\ServerRequest $request )
Checks whether a response has not been modified according to the 'If-None-Match' (Etags) and 'If-Modified-Since' (last modification date) request headers. If the response is detected to be not modified, it is marked as so accordingly so the client can be informed of that.
In order to mark a response as not modified, you need to set at least the Last-Modified etag response header before calling this method. Otherwise a comparison will not be possible.
Cake\Http\ServerRequest
$request
compress( )
Sets the correct output buffering handler to send a compressed response. Responses will be compressed with zlib, if the extension is available.
convertCookieToArray( Cake\Http\Cookie\CookieInterface $cookie )
Convert the cookie into an array of its properties.
This method is compatible with the historical behavior of Cake\Http\Response, where httponly
is httpOnly
and expires
is expire
Cake\Http\Cookie\CookieInterface
$cookie
cookie( array|null $options null )
Getter/Setter for cookie configs
This method acts as a setter/getter depending on the type of the argument. If the method is called with no arguments, it returns all configurations.
If the method is called with a string as argument, it returns either the given configuration if it is set, or null, if it's not set.
If the method is called with an array as argument, it will set the cookie configuration to the cookie container.
### Options (when setting a configuration) - name: The Cookie name - value: Value of the cookie - expire: Time the cookie expires in - path: Path the cookie applies to - domain: Domain the cookie is for. - secure: Is the cookie https? - httpOnly: Is the cookie available in the client?
$this->cookie()
$this->cookie('MyCookie')
$this->cookie((array) $options)
$options
optional null Either null to get all cookies, string for a specific cookie or array to set cookie.
cors( Cake\Http\ServerRequest $request , string|array $allowedDomains [] , string|array $allowedMethods [] , string|array $allowedHeaders [] )
Setup access for origin and methods on cross origin requests
This method allow multiple ways to setup the domains, see the examples
cors($request, 'https://www.cakephp.org');
cors($request, 'https://*.cakephp.org');
cors($request, 'www.cakephp.org');
cors($request, '*');
cors($request, ['http://www.cakephp.org', '*.google.com', 'https://myproject.github.io']);
Note The $allowedDomains
, $allowedMethods
, $allowedHeaders
parameters are deprecated. Instead the builder object should be used.
Cake\Http\ServerRequest
$request
$allowedDomains
optional [] $allowedMethods
optional [] $allowedHeaders
optional [] Cake\Network\CorsBuilder
A builder object the provides a fluent interface for defining additional CORS headers.
disableCache( )
Sets the correct headers to instruct the client to not cache the response
download( string $filename )
Sets the correct headers to instruct the browser to download the response as a file.
$filename
etag( string|null $hash null , boolean $weak false )
Sets the response Etag, Etags are a strong indicative that a response can be cached by a HTTP client. A bad way of generating Etags is creating a hash of the response output, instead generate a unique hash of the unique components that identifies a request, such as a modification time, a resource Id, and anything else you consider it makes it unique.
Second parameter is used to instruct clients that the content has changed, but semantically, it can be used as the same thing. Think for instance of a page with a hit counter, two different page views are equivalent, but they differ by a few bytes. This leaves off to the Client the decision of using or not the cached page.
If no parameters are passed, current Etag header is returned.
$hash
optional null $weak
optional false Whether the response is semantically the same as other with the same hash or not
expires( string|DateTime|null $time null )
Sets the Expires header for the response by taking an expiration time If called with no parameters it will return the current Expires value
$response->expires('now')
Will Expire the response cache now $response->expires(new DateTime('+1 day'))
Will set the expiration in next 24 hours $response->expires()
Will return the current expiration header value
$time
optional null file( string $path , array $options [] )
Setup for display or download the given file.
If $_SERVER['HTTP_RANGE'] is set a slice of the file will be returned instead of the entire file.
true
set