Browse Source

Update generated cache files.

- Cache files should contain a response object on the controller.
  Without it bad things happen.
- Include the $request and $response contructor arguments for Controller.
- Update import -> uses()

Refs #2190
mark_story 14 years ago
parent
commit
6623b7dc9d
1 changed files with 12 additions and 10 deletions
  1. 12 10
      lib/Cake/View/Helper/CacheHelper.php

+ 12 - 10
lib/Cake/View/Helper/CacheHelper.php

@@ -265,24 +265,26 @@ class CacheHelper extends AppHelper {
 		$file = '<!--cachetime:' . $cacheTime . '--><?php';
 
 		if (empty($this->_View->plugin)) {
-			$file .= '
-			App::import(\'Controller\', \'' . $this->_View->name. '\');
-			';
+			$file .= "
+			App::uses('{$this->_View->name}Controller', 'Controller');
+			";
 		} else {
-			$file .= '
-			App::import(\'Controller\', \'' . $this->_View->plugin . '.' . $this->_View->name. '\');
-			';
+			$file .= "
+			App::uses('{$this->_View->name}Controller', '{$this->_View->plugin}.Controller');
+			";
 		}
 
-		$file .= '$controller = new ' . $this->_View->name . 'Controller();
+		$file .= '
+				$request = unserialize(\'' . str_replace("'", "\\'", serialize($this->request)) . '\');
+				$response = new CakeResponse(array("charset" => Configure::read("App.encoding")));
+				$controller = new ' . $this->_View->name . 'Controller($request, $response);
 				$controller->plugin = $this->plugin = \'' . $this->_View->plugin . '\';
 				$controller->helpers = $this->helpers = unserialize(\'' . serialize($this->_View->helpers) . '\');
 				$controller->layout = $this->layout = \'' . $this->_View->layout. '\';
-				$controller->request = $this->request = unserialize(\'' . str_replace("'", "\\'", serialize($this->request)) . '\');
 				$controller->theme = $this->theme = \'' . $this->_View->theme . '\';
 				$controller->viewVars = $this->viewVars = unserialize(base64_decode(\'' . base64_encode(serialize($this->_View->viewVars)) . '\'));
-				Router::setRequestInfo($controller->request);';
-
+				Router::setRequestInfo($controller->request);
+				$this->request = $request;';
 
 		if ($useCallbacks == true) {
 			$file .= '