Browse Source

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

tags/2.0.0-beta
Qiang Xue 11 years ago
parent
commit
50703f8a82
  1. 1
      framework/CHANGELOG.md
  2. 10
      framework/yii/web/Response.php

1
framework/CHANGELOG.md

@ -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)

10
framework/yii/web/Response.php

@ -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;
}
/**

Loading…
Cancel
Save