Commit 50703f8a by Qiang Xue

Fixes #1844: Calling `Response::sendFile()` would cause sending the response twice

parent 4609a94d
......@@ -24,6 +24,7 @@ Yii Framework 2 Change Log
- Bug #1798: Fixed label attributes for array fields (zhuravljov)
- Bug #1800: Better check for `$_SERVER['HTTPS']` in `yii\web\Request::getIsSecureConnection()` (ginus, samdark)
- Bug #1827: Debugger toolbar is loaded twice if an action is calling `run()` to execute another action (qiangxue)
- Bug #1844: Calling `Response::sendFile()` would cause sending the response twice (qiangxue)
- Bug: Fixed `Call to a member function registerAssetFiles() on a non-object` in case of wrong `sourcePath` for an asset bundle (samdark)
- Bug: Fixed incorrect event name for `yii\jui\Spinner` (samdark)
- Bug: Json::encode() did not handle objects that implement JsonSerializable interface correctly (cebe)
......
......@@ -136,6 +136,10 @@ class Response extends \yii\base\Response
*/
public $version;
/**
* @var boolean whether the response has been sent. If this is true, calling [[send()]] will do nothing.
*/
public $isSent = false;
/**
* @var array list of HTTP status codes and the corresponding texts
*/
public static $httpStatuses = [
......@@ -281,6 +285,11 @@ class Response extends \yii\base\Response
*/
public function send()
{
if ($this->isSent) {
return;
} else {
$this->isSent = true;
}
$this->trigger(self::EVENT_BEFORE_SEND);
$this->prepare();
$this->trigger(self::EVENT_AFTER_PREPARE);
......@@ -300,6 +309,7 @@ class Response extends \yii\base\Response
$this->statusText = 'OK';
$this->data = null;
$this->content = null;
$this->isSent = false;
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment