Browse Source

Add class_exists() check for view class.

Check that the view class hasn't already been mapped in the autoloader
before mapping it. This allows developers to map view classes from
plugins.

Fixes #2684
mark_story 14 years ago
parent
commit
f1931e43ef
1 changed files with 5 additions and 3 deletions
  1. 5 3
      lib/Cake/Controller/Component/RequestHandlerComponent.php

+ 5 - 3
lib/Cake/Controller/Component/RequestHandlerComponent.php

@@ -581,9 +581,11 @@ class RequestHandlerComponent extends Component {
 		$controller->ext = '.ctp';
 
 		$viewClass = Inflector::classify($type);
-		App::uses($viewClass . 'View', 'View');
-
-		if (class_exists($viewClass . 'View')) {
+		$viewName = $viewClass . 'View';
+		if (!class_exists($viewName)) {
+			App::uses($viewName, 'View');
+		}
+		if (class_exists($viewName)) {
 			$controller->viewClass = $viewClass;
 		} elseif (empty($this->_renderType)) {
 			$controller->viewPath .= DS . $type;