Response
- Type
- Class
- Namespace
- craft\web
- Inherits
- craft\web\Response » yii\web\Response (opens new window) » yii\base\Response (opens new window) » yii\base\Component (opens new window) » yii\base\BaseObject (opens new window)
- Implements
- yii\base\Configurable (opens new window)
- Since
- 3.0.0
View source (opens new window)
# Public Properties
# contentType
- Type
- string (opens new window), null (opens new window)
- Default value
null
- Access
- Read-only
View source (opens new window)
# defaultFormatters
- Default value
[]
- Since
- 4.5.0
This could be set from config/app.web.php
to append additional default response formatters, or modify existing ones.
use craft\helpers\App;
use craft\helpers\ArrayHelper;
use craft\web\Response;
return [
'components' => [
'response' => fn() => Craft::createObject(ArrayHelper::merge(
App::webResponseConfig(),
[
'defaultFormatters' => [
Response::FORMAT_CSV => [
'delimiter' => chr(9),
],
],
]
)),
],
];
See also defaultFormatters()
View source (opens new window)
# lastModifiedHeader
- Type
- string (opens new window)
- Default value
null
- Access
- Write-only
The file to read the last modified date from.
View source (opens new window)
# rawCookies
- Type
- yii\web\CookieCollection (opens new window)
- Default value
null
- Access
- Read-only
- Since
- 3.5.0
The cookie collection.
View source (opens new window)
# Public Methods
Method | Description |
---|---|
__call() (opens new window) | Calls the named method which is not a class method. |
__clone() (opens new window) | This method is called after the object is created by cloning an existing one. |
__construct() (opens new window) | Constructor. |
__get() (opens new window) | Returns the value of a component property. |
__isset() (opens new window) | Checks if a property is set, i.e. defined and not null. |
__set() (opens new window) | Sets the value of a component property. |
__unset() (opens new window) | Sets a component property to be null. |
attachBehavior() (opens new window) | Attaches a behavior to this component. |
attachBehaviors() (opens new window) | Attaches a list of behaviors to the component. |
behaviors() (opens new window) | Returns a list of behaviors that this component should behave as. |
canGetProperty() (opens new window) | Returns a value indicating whether a property can be read. |
canSetProperty() (opens new window) | Returns a value indicating whether a property can be set. |
className() (opens new window) | Returns the fully qualified name of this class. |
clear() (opens new window) | Clears the headers, cookies, content, status code of the response. |
clearOutputBuffers() (opens new window) | Removes all existing output buffers. |
detachBehavior() (opens new window) | Detaches a behavior from the component. |
detachBehaviors() (opens new window) | Detaches all behaviors from the component. |
ensureBehaviors() (opens new window) | Makes sure that the behaviors declared in behaviors() (opens new window) are attached to this component. |
getBehavior() (opens new window) | Returns the named behavior object. |
getBehaviors() (opens new window) | Returns all behaviors attached to this component. |
getContentType() | Returns the Content-Type header (sans charset=X ) that the response will most likely include. |
getCookies() (opens new window) | Returns the cookie collection. |
getHeaders() (opens new window) | Returns the header collection. |
getIsClientError() (opens new window) | |
getIsEmpty() (opens new window) | |
getIsForbidden() (opens new window) | |
getIsInformational() (opens new window) | |
getIsInvalid() (opens new window) | |
getIsNotFound() (opens new window) | |
getIsOk() (opens new window) | |
getIsRedirection() (opens new window) | |
getIsServerError() (opens new window) | |
getIsSuccessful() (opens new window) | |
getRawCookies() | Returns the “raw” cookie collection. |
getStatusCode() (opens new window) | |
hasEventHandlers() (opens new window) | Returns a value indicating whether there is any handler attached to the named event. |
hasMethod() (opens new window) | Returns a value indicating whether a method is defined. |
hasProperty() (opens new window) | Returns a value indicating whether a property is defined for this component. |
init() (opens new window) | Initializes this component. |
off() (opens new window) | Detaches an existing event handler from this component. |
on() (opens new window) | Attaches an event handler to an event. |
redirect() | Redirects the browser to the specified URL. |
refresh() (opens new window) | Refreshes the current page. |
send() (opens new window) | Sends the response to the client. |
sendAndClose() | Attempts to closes the connection with the HTTP client, without ending PHP script execution. |
sendContentAsFile() | Sends the specified content as a file to the browser. |
sendFile() | Sends a file to the browser. |
sendStreamAsFile() (opens new window) | Sends the specified stream as a file to the browser. |
setCacheHeaders() | Sets headers that will instruct the client to cache this response. |
setDownloadHeaders() (opens new window) | Sets a default set of HTTP headers for file downloading purpose. |
setLastModifiedHeader() | Sets a Last-Modified header based on a given file path. |
setNoCacheHeaders() | Sets headers that will instruct the client to not cache this response. |
setStatusCode() (opens new window) | Sets the response status code. |
setStatusCodeByException() (opens new window) | Sets the response status code based on the exception. |
trigger() (opens new window) | Triggers an event. |
xSendFile() (opens new window) | Sends existing file to a browser as a download using x-sendfile. |
# getContentType()
Returns the Content-Type header (sans charset=X
) that the response will most likely include.
View source (opens new window)
Returns
string (opens new window), null (opens new window)
# getRawCookies()
- Since
- 3.5.0
Returns the “raw” cookie collection.
Works similar to getCookies() (opens new window), but these cookies won’t go through validation, and their values won’t be hashed.
View source (opens new window)
Returns
yii\web\CookieCollection (opens new window) – The cookie collection.
# redirect()
Redirects the browser to the specified URL.
This method adds a "Location" header to the current response. Note that it does not send out the header until send() (opens new window) is called. In a controller action you may use this method as follows:
return Yii::$app->getResponse()->redirect($url);
In other places, if you want to send out the "Location" header immediately, you should use the following code:
Yii::$app->getResponse()->redirect($url)->send();
return;
In AJAX mode, this normally will not work as expected unless there are some client-side JavaScript code handling the redirection. To help achieve this goal, this method will send out a "X-Redirect" header instead of "Location".
If you use the "yii" JavaScript module, it will handle the AJAX redirection as described above. Otherwise, you should write the following JavaScript code to handle the redirection:
$document.ajaxComplete(function (event, xhr, settings) {
var url = xhr && xhr.getResponseHeader('X-Redirect');
if (url) {
window.location = url;
}
});
View source (opens new window)
Arguments
$url
(string (opens new window), array (opens new window)) – The URL to be redirected to. This can be in one of the following formats:a string representing a URL (e.g. "https://example.com")
a string representing a URL alias (e.g. "@example.com")
an array in the format of
[$route, ...name-value pairs...]
(e.g.['site/index', 'ref' => 1]
). Note that the route is with respect to the whole application, instead of relative to a controller or module. yii\helpers\Url::to() (opens new window) will be used to convert the array into a URL.
Any relative URL that starts with a single forward slash "/" will be converted into an absolute one by prepending it with the host info of the current request.
$statusCode
(integer (opens new window)) – The HTTP status code. Defaults to 302. See https://tools.ietf.org/html/rfc2616#section-10 (opens new window) for details about HTTP status code$checkAjax
(boolean (opens new window)) – Whether to specially handle AJAX (and PJAX) requests. Defaults to true, meaning if the current request is an AJAX or PJAX request, then calling this method will cause the browser to redirect to the given URL. If this is false, aLocation
header will be sent, which when received as an AJAX/PJAX response, may NOT cause browser redirection. Takes effect only when request headerX-Ie-Redirect-Compatibility
is absent.
Returns
$this – The response object itself
# sendAndClose()
Attempts to closes the connection with the HTTP client, without ending PHP script execution.
This method relies on flush() (opens new window), which may not actually work if mod_deflate or mod_gzip is installed, or if this is a Win32 server.
See also http://stackoverflow.com/a/141026 View source (opens new window)
Throws
- Throwable (opens new window)
An exception will be thrown if content has already been output.
# sendContentAsFile()
Sends the specified content as a file to the browser.
Note that this method only prepares the response for file sending. The file is not sent until send() (opens new window) is called explicitly or implicitly. The latter is done after you return from a controller action.
\yii\web\Response::sendContentAsFile()
View source (opens new window)
Arguments
$content
(string (opens new window)) – The content to be sent. The existing content (opens new window) will be discarded.$attachmentName
(string (opens new window)) – The file name shown to the user.$options
(array (opens new window)) – Additional options for sending the file. The following options are supported:mimeType
: the MIME type of the content. Defaults to 'application/octet-stream'.inline
: boolean, whether the browser should open the file within the browser window. Defaults to false, meaning a download dialog will pop up.
Returns
self
– Self reference
Throws
# sendFile()
Sends a file to the browser.
Note that this method only prepares the response for file sending. The file is not sent until send() (opens new window) is called explicitly or implicitly. The latter is done after you return from a controller action.
The following is an example implementation of a controller action that allows requesting files from a directory that is not accessible from web:
public function actionFile($filename)
{
$storagePath = Yii::getAlias('@app/files');
// check filename for allowed chars (do not allow ../ to avoid security issue: downloading arbitrary files)
if (!preg_match('/^[a-z0-9]+\.[a-z0-9]+$/i', $filename) || !is_file("$storagePath/$filename")) {
throw new \yii\web\NotFoundHttpException('The file does not exists.');
}
return Yii::$app->response->sendFile("$storagePath/$filename", $filename);
}
\yii\web\Response::sendFile()
View source (opens new window)
Arguments
$filePath
(string (opens new window)) – The path of the file to be sent.$attachmentName
(string (opens new window), null (opens new window)) – The file name shown to the user. If null, it will be determined from$filePath
.$options
(array (opens new window)) – Additional options for sending the file. The following options are supported:mimeType
: the MIME type of the content. If not set, it will be guessed based on$filePath
inline
: boolean, whether the browser should open the file within the browser window. Defaults to false, meaning a download dialog will pop up.
Returns
self
– Self reference
# setCacheHeaders()
Sets headers that will instruct the client to cache this response.
View source (opens new window)
Arguments
$duration
(integer (opens new window)) – The total cache duration, in seconds. Defaults to 1 year.$overwrite
(boolean (opens new window)) – Whether the headers should overwrite existing headers, if already set
Returns
self
– Self reference
# setLastModifiedHeader()
Sets a Last-Modified header based on a given file path.
View source (opens new window)
Arguments
$path
(string (opens new window)) – The file to read the last modified date from.
Returns
self
– Self reference
# setNoCacheHeaders()
- Since
- 3.5.0
Sets headers that will instruct the client to not cache this response.
View source (opens new window)
Arguments
$overwrite
(boolean (opens new window)) – Whether the headers should overwrite existing headers, if already set
Returns
self
– Self reference
# Protected Methods
Method | Description |
---|---|
defaultFormatters() | |
getDispositionHeaderValue() (opens new window) | Returns Content-Disposition header value that is safe to use with both old and new browsers. |
getHttpRange() (opens new window) | Determines the HTTP range given in the request. |
prepare() | Prepares for sending the response. |
sendContent() (opens new window) | Sends the response content to the client. |
sendCookies() | Sends the cookies to the client. |
sendHeaders() (opens new window) | Sends the response headers to the client. |
# defaultFormatters()
- Since
- 3.4.0
View source (opens new window)
Returns
array (opens new window) – The formatters that are supported by default
# prepare()
Prepares for sending the response.
The default implementation will convert data (opens new window) into content (opens new window) and set headers accordingly.
View source (opens new window)
Throws
- yii\base\InvalidConfigException (opens new window)
if the formatter for the specified format is invalid or format (opens new window) is not supported
# sendCookies()
- Since
- 3.5.0
Sends the cookies to the client.
View source (opens new window)
# Constants
Constant | Description |
---|---|
FORMAT_CSV | |
FORMAT_HTML | |
FORMAT_JSON | |
FORMAT_JSONP | |
FORMAT_RAW | |
FORMAT_XML |