From: Roland Häder <roland@mxchange.org>
Date: Sun, 22 Nov 2020 16:53:01 +0000 (+0100)
Subject: Continued:
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=9eb703e65f6334b24852c14b34649e78c812d3ae;p=core.git

Continued:
- fixed resolving order:
  1) application's controller will be checked
  2) the application "tests"  need its own default news controller
  3) else load framework's default news controller

Signed-off-by: Roland Häder <roland@mxchange.org>
---

diff --git a/framework/main/classes/resolver/controller/class_BaseControllerResolver.php b/framework/main/classes/resolver/controller/class_BaseControllerResolver.php
index ddad2563..2ff9ee36 100644
--- a/framework/main/classes/resolver/controller/class_BaseControllerResolver.php
+++ b/framework/main/classes/resolver/controller/class_BaseControllerResolver.php
@@ -178,16 +178,20 @@ abstract class BaseControllerResolver extends BaseResolver {
 			$namespace,
 			$this->getCapitalizedClassPrefix() . StringUtils::convertToClassName($controllerName)
 		);
-		$newsControllerName = sprintf(
+		// Application's default news controller
+		$appDefaultControllerName = sprintf(
 			'%s\%sDefaultNewsController',
 			$namespace,
 			$this->getCapitalizedClassPrefix()
 		);
-
-		// Debug message
-		//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('className=%s', $className));
+		// Framework's default news controller
+		$defaultControllerName = sprintf(
+			'Org\Mxchange\CoreFramework\Controller\News\%sDefaultNewsController',
+			$this->getCapitalizedClassPrefix()
+		);
 
 		// Now, let us create the full name of the controller class
+		//* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('className=%s', $className));
 		$this->setClassName($className);
 
 		// Try it hard to get an controller
@@ -196,14 +200,17 @@ abstract class BaseControllerResolver extends BaseResolver {
 			if (class_exists($this->getClassName())) {
 				// This class does exist. :-)
 				$isValid = true;
-			} elseif ($this->getClassName() != $newsControllerName) {
-				// Set default controller
-				$this->setClassName($newsControllerName);
+			} elseif ($this->getClassName() != $appDefaultControllerName) {
+				// Set application's default controller
+				$this->setClassName($appDefaultControllerName);
+			} elseif ($this->getClassName() != $defaultControllerName) {
+				// Set framework's default controller
+				$this->setClassName($defaultControllerName);
 			} else {
 				// All is tried, give it up here
 				throw new DefaultControllerException($this, self::EXCEPTION_DEFAULT_CONTROLLER_GONE);
 			}
-		} // END - while
+		}
 
 		// Return the result
 		return $isValid;