Continued:
authorRoland Häder <roland@mxchange.org>
Sun, 22 Nov 2020 16:53:01 +0000 (17:53 +0100)
committerRoland Häder <roland@mxchange.org>
Sun, 22 Nov 2020 16:53:01 +0000 (17:53 +0100)
- 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>
framework/main/classes/resolver/controller/class_BaseControllerResolver.php

index ddad2563af3850b2d408236b0205255e3ed12f08..2ff9ee3667f7df5a9360a9acbfc2901265b3914b 100644 (file)
@@ -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;