From 71782b344e7d38cc046fcef7eda532f85b6052ea Mon Sep 17 00:00:00 2001 From: Carsten Brandt Date: Sun, 16 Jun 2013 18:52:56 +0200 Subject: [PATCH] Changed existing code to match the changes regarding response --- apps/advanced/backend/controllers/SiteController.php | 4 ++-- apps/advanced/frontend/controllers/SiteController.php | 6 +++--- apps/basic/controllers/SiteController.php | 6 +++--- framework/yii/base/Controller.php | 2 +- framework/yii/base/ErrorHandler.php | 10 ++++++++-- framework/yii/web/CaptchaAction.php | 2 +- framework/yii/web/HttpCache.php | 9 +++++---- framework/yii/web/Request.php | 2 +- framework/yii/web/User.php | 9 ++++----- framework/yii/web/VerbFilter.php | 2 +- tests/unit/framework/helpers/HtmlTest.php | 3 --- 11 files changed, 29 insertions(+), 26 deletions(-) diff --git a/apps/advanced/backend/controllers/SiteController.php b/apps/advanced/backend/controllers/SiteController.php index 851fcec..7f6eb58 100644 --- a/apps/advanced/backend/controllers/SiteController.php +++ b/apps/advanced/backend/controllers/SiteController.php @@ -17,7 +17,7 @@ class SiteController extends Controller { $model = new LoginForm(); if ($this->populate($_POST, $model) && $model->login()) { - return Yii::$app->response->redirect(array('site/index')); + return $this->response->redirect(array('site/index')); } else { return $this->render('login', array( 'model' => $model, @@ -28,6 +28,6 @@ class SiteController extends Controller public function actionLogout() { Yii::$app->user->logout(); - return Yii::$app->response->redirect(array('site/index')); + return $this->response->redirect(array('site/index')); } } diff --git a/apps/advanced/frontend/controllers/SiteController.php b/apps/advanced/frontend/controllers/SiteController.php index b0f8ec2..7405ba1 100644 --- a/apps/advanced/frontend/controllers/SiteController.php +++ b/apps/advanced/frontend/controllers/SiteController.php @@ -27,7 +27,7 @@ class SiteController extends Controller { $model = new LoginForm(); if ($this->populate($_POST, $model) && $model->login()) { - return Yii::$app->response->redirect(array('site/index')); + return $this->response->redirect(array('site/index')); } else { return $this->render('login', array( 'model' => $model, @@ -38,7 +38,7 @@ class SiteController extends Controller public function actionLogout() { Yii::$app->user->logout(); - return Yii::$app->response->redirect(array('site/index')); + return $this->response->redirect(array('site/index')); } public function actionContact() @@ -46,7 +46,7 @@ class SiteController extends Controller $model = new ContactForm; if ($this->populate($_POST, $model) && $model->contact(Yii::$app->params['adminEmail'])) { Yii::$app->session->setFlash('contactFormSubmitted'); - return Yii::$app->response->refresh(); + return $this->response->refresh(); } else { return $this->render('contact', array( 'model' => $model, diff --git a/apps/basic/controllers/SiteController.php b/apps/basic/controllers/SiteController.php index d79b728..670e05e 100644 --- a/apps/basic/controllers/SiteController.php +++ b/apps/basic/controllers/SiteController.php @@ -27,7 +27,7 @@ class SiteController extends Controller { $model = new LoginForm(); if ($this->populate($_POST, $model) && $model->login()) { - return Yii::$app->response->redirect(array('site/index')); + return $this->response->redirect(array('site/index')); } else { return $this->render('login', array( 'model' => $model, @@ -38,7 +38,7 @@ class SiteController extends Controller public function actionLogout() { Yii::$app->user->logout(); - return Yii::$app->response->redirect(array('site/index')); + return $this->response->redirect(array('site/index')); } public function actionContact() @@ -46,7 +46,7 @@ class SiteController extends Controller $model = new ContactForm; if ($this->populate($_POST, $model) && $model->contact(Yii::$app->params['adminEmail'])) { Yii::$app->session->setFlash('contactFormSubmitted'); - return Yii::$app->response->refresh(); + return $this->response->refresh(); } else { return $this->render('contact', array( 'model' => $model, diff --git a/framework/yii/base/Controller.php b/framework/yii/base/Controller.php index af9b169..f36241e 100644 --- a/framework/yii/base/Controller.php +++ b/framework/yii/base/Controller.php @@ -15,7 +15,7 @@ use Yii; * @author Qiang Xue * @since 2.0 */ -class Controller extends Component +abstract class Controller extends Component { /** * @event ActionEvent an event raised right before executing a controller action. diff --git a/framework/yii/base/ErrorHandler.php b/framework/yii/base/ErrorHandler.php index 338a392..dc1e00b 100644 --- a/framework/yii/base/ErrorHandler.php +++ b/framework/yii/base/ErrorHandler.php @@ -9,6 +9,7 @@ namespace yii\base; use Yii; use yii\web\HttpException; +use yii\web\Response; /** * ErrorHandler handles uncaught PHP errors and exceptions. @@ -89,8 +90,13 @@ class ErrorHandler extends Component $useErrorView = !YII_DEBUG || $exception instanceof UserException; - $response = Yii::$app->getResponse(); - $response->getHeaders()->removeAll(); + if (Yii::$app->controller !== null) { + $response = Yii::$app->controller->getResponse(); + $response->getHeaders()->removeAll(); + } + if (empty($response)) { + $response = new Response(); + } if ($useErrorView && $this->errorAction !== null) { $result = Yii::$app->runAction($this->errorAction); diff --git a/framework/yii/web/CaptchaAction.php b/framework/yii/web/CaptchaAction.php index 1e22627..47eded8 100644 --- a/framework/yii/web/CaptchaAction.php +++ b/framework/yii/web/CaptchaAction.php @@ -325,7 +325,7 @@ class CaptchaAction extends Action */ protected function setHttpHeaders() { - Yii::$app->getResponse()->getHeaders() + $this->getResponse()->getHeaders() ->set('Pragma', 'public') ->set('Expires', '0') ->set('Cache-Control', 'must-revalidate, post-check=0, pre-check=0') diff --git a/framework/yii/web/HttpCache.php b/framework/yii/web/HttpCache.php index cc9e6ed..785c7dd 100644 --- a/framework/yii/web/HttpCache.php +++ b/framework/yii/web/HttpCache.php @@ -74,8 +74,8 @@ class HttpCache extends ActionFilter $etag = $this->generateEtag($seed); } - $this->sendCacheControlHeader(); - $response = Yii::$app->getResponse(); + $response = $action->getResponse(); + $this->sendCacheControlHeader($response); if ($etag !== null) { $response->getHeaders()->set('Etag', $etag); } @@ -109,12 +109,13 @@ class HttpCache extends ActionFilter /** * Sends the cache control header to the client + * @param Response $response * @see cacheControl */ - protected function sendCacheControlHeader() + protected function sendCacheControlHeader($response) { session_cache_limiter('public'); - $headers = Yii::$app->getResponse()->getHeaders(); + $headers = $response->getHeaders(); $headers->set('Pragma'); if ($this->cacheControlHeader !== null) { $headers->set('Cache-Control', $this->cacheControlHeader); diff --git a/framework/yii/web/Request.php b/framework/yii/web/Request.php index 1027011..0af80d5 100644 --- a/framework/yii/web/Request.php +++ b/framework/yii/web/Request.php @@ -788,7 +788,7 @@ class Request extends \yii\base\Request $this->_csrfCookie = $this->getCookies()->get($this->csrfTokenName); if ($this->_csrfCookie === null) { $this->_csrfCookie = $this->createCsrfCookie(); - Yii::$app->getResponse()->getCookies()->add($this->_csrfCookie); + Yii::$app->controller->getResponse()->getCookies()->add($this->_csrfCookie); } } diff --git a/framework/yii/web/User.php b/framework/yii/web/User.php index d4646a6..7091dd5 100644 --- a/framework/yii/web/User.php +++ b/framework/yii/web/User.php @@ -283,8 +283,7 @@ class User extends Component $this->setReturnUrl($request->getUrl()); } if ($this->loginUrl !== null) { - $response = Yii::$app->getResponse(); - $response->redirect($this->loginUrl)->send(); + Yii::$app->controller->getResponse()->redirect($this->loginUrl)->send(); exit(); } else { throw new HttpException(403, Yii::t('yii', 'Login Required')); @@ -372,7 +371,7 @@ class User extends Component $cookie = new Cookie($this->identityCookie); $cookie->value = $value; $cookie->expire = time() + (int)$data[2]; - Yii::$app->getResponse()->getCookies()->add($cookie); + Yii::$app->controller->getResponse()->getCookies()->add($cookie); } } } @@ -395,7 +394,7 @@ class User extends Component $duration, )); $cookie->expire = time() + $duration; - Yii::$app->getResponse()->getCookies()->add($cookie); + Yii::$app->controller->getResponse()->getCookies()->add($cookie); } /** @@ -429,7 +428,7 @@ class User extends Component $this->sendIdentityCookie($identity, $duration); } } elseif ($this->enableAutoLogin) { - Yii::$app->getResponse()->getCookies()->remove(new Cookie($this->identityCookie)); + Yii::$app->controller->getResponse()->getCookies()->remove(new Cookie($this->identityCookie)); } } diff --git a/framework/yii/web/VerbFilter.php b/framework/yii/web/VerbFilter.php index 4f45190..ffd82c2 100644 --- a/framework/yii/web/VerbFilter.php +++ b/framework/yii/web/VerbFilter.php @@ -80,7 +80,7 @@ class VerbFilter extends Behavior if (!in_array($verb, $allowed)) { $event->isValid = false; // http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.7 - Yii::$app->getResponse()->getHeaders()->set('Allow', implode(', ', $allowed)); + $event->action->getResponse()->getHeaders()->set('Allow', implode(', ', $allowed)); throw new HttpException(405, 'Method Not Allowed. This url can only handle the following request methods: ' . implode(', ', $allowed)); } } diff --git a/tests/unit/framework/helpers/HtmlTest.php b/tests/unit/framework/helpers/HtmlTest.php index 018a820..0399a4e 100644 --- a/tests/unit/framework/helpers/HtmlTest.php +++ b/tests/unit/framework/helpers/HtmlTest.php @@ -17,9 +17,6 @@ class HtmlTest extends TestCase 'class' => 'yii\web\Request', 'url' => '/test', ), - 'response' => array( - 'class' => 'yii\web\Response', - ), ), )); }