From 9d7ec3e9729ea8a7a9418cf3f87a0e4bfcf4c3d5 Mon Sep 17 00:00:00 2001 From: Roland Haeder Date: Fri, 24 Feb 2017 22:10:34 +0100 Subject: [PATCH] Continued: - no need to have namespace as parameter (only isValidFoo() calls) as it can be set in BaseResolver and all resolvers can use it which they must do anyway. - added "import" for DefaultControllerException - added "import" for Controller MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- ...lass_TestsConsoleDefaultNewsController.php | 3 ++ .../class_TestsConsoleControllerResolver.php | 7 +-- application/tests/config.php | 7 ++- .../class_ConsoleDefaultNewsController.php | 1 + .../html/class_HtmlConfirmController.php | 1 + .../html/class_HtmlDefaultController.php | 1 + .../html/class_HtmlDefaultNewsController.php | 1 + .../html/class_HtmlLoginController.php | 1 + .../html/class_HtmlLoginFailedController.php | 1 + .../html/class_HtmlLogoutController.php | 1 + .../html/class_HtmlLogoutDoneController.php | 1 + .../html/class_HtmlProblemController.php | 1 + .../html/class_HtmlRegisterController.php | 1 + .../html/class_HtmlStatusController.php | 1 + .../html/form/class_HtmlDoFormController.php | 1 + .../login/class_HtmlLoginAreaController.php | 1 + .../class_ImageCodeCaptchaController.php | 1 + .../image/class_ImageDefaultController.php | 1 + .../classes/resolver/class_BaseResolver.php | 44 ++++++++++++++----- .../class_BaseControllerResolver.php | 13 +++--- .../controller/class_Controller.php | 2 +- 21 files changed, 68 insertions(+), 23 deletions(-) diff --git a/application/tests/classes/controller/console/class_TestsConsoleDefaultNewsController.php b/application/tests/classes/controller/console/class_TestsConsoleDefaultNewsController.php index 2f6e4153..266ee542 100644 --- a/application/tests/classes/controller/console/class_TestsConsoleDefaultNewsController.php +++ b/application/tests/classes/controller/console/class_TestsConsoleDefaultNewsController.php @@ -4,6 +4,9 @@ namespace CoreFramework\Tests\Controller; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; +use CoreFramework\Request\Requestable; +use CoreFramework\Response\Responseable; /** * The default controller with news for e.g. home or news page diff --git a/application/tests/classes/resolver/controller/class_TestsConsoleControllerResolver.php b/application/tests/classes/resolver/controller/class_TestsConsoleControllerResolver.php index 3c9023f5..f707e1f0 100644 --- a/application/tests/classes/resolver/controller/class_TestsConsoleControllerResolver.php +++ b/application/tests/classes/resolver/controller/class_TestsConsoleControllerResolver.php @@ -61,7 +61,7 @@ class TestsConsoleControllerResolver extends BaseControllerResolver implements C if (empty($controllerName)) { // Then thrown an exception here throw new EmptyVariableException(array($resolverInstance, 'commandName'), self::EXCEPTION_UNEXPECTED_EMPTY_STRING); - } elseif ($resolverInstance->isControllerValid(__NAMESPACE__, $controllerName) === FALSE) { + } elseif ($resolverInstance->isControllerValid('CoreFramework\Tests\Controller', $controllerName) === FALSE) { // Invalid command found throw new InvalidControllerException(array($resolverInstance, $controllerName), self::EXCEPTION_INVALID_CONTROLLER); } @@ -69,7 +69,8 @@ class TestsConsoleControllerResolver extends BaseControllerResolver implements C // Set the application instance $resolverInstance->setApplicationInstance($applicationInstance); - // Set command name + // Set namespace and controller name + $resolverInstance->setNamespace('CoreFramework\Tests\Controller'); $resolverInstance->setControllerName($controllerName); // Return the prepared instance @@ -89,7 +90,7 @@ class TestsConsoleControllerResolver extends BaseControllerResolver implements C $controllerName = ''; $controllerInstance = NULL; - // Get the command name + // Get namespace and command name $controllerName = $this->getControllerName(); // Get the command diff --git a/application/tests/config.php b/application/tests/config.php index 3ed7924a..c9653716 100644 --- a/application/tests/config.php +++ b/application/tests/config.php @@ -28,7 +28,10 @@ use CoreFramework\Configuration\FrameworkConfiguration; $cfg = FrameworkConfiguration::getSelfInstance(); // CFG: DEFAULT-CONSOLE-COMMAND -$cfg->setConfigEntry('default_console_command', 'tests'); +$cfg->setConfigEntry('default_console_command', 'main'); // CFG: DEFAULT-TESTS-CONSOLE-COMMAND -$cfg->setConfigEntry('default_tests_console_command', 'tests'); +$cfg->setConfigEntry('default_tests_console_command', 'main'); + +// CFG: DEFAULT-TESTS-CONSOLE-CONTROLLER +$cfg->setConfigEntry('default_tests_console_controller', 'main'); diff --git a/inc/main/classes/controller/console/class_ConsoleDefaultNewsController.php b/inc/main/classes/controller/console/class_ConsoleDefaultNewsController.php index 2bcca95a..c9b9e5d1 100644 --- a/inc/main/classes/controller/console/class_ConsoleDefaultNewsController.php +++ b/inc/main/classes/controller/console/class_ConsoleDefaultNewsController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Default; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Factory\ObjectFactory; use CoreFramework\Request\Requestable; use CoreFramework\Response\Responseable; diff --git a/inc/main/classes/controller/html/class_HtmlConfirmController.php b/inc/main/classes/controller/html/class_HtmlConfirmController.php index dcdfa840..d5477f66 100644 --- a/inc/main/classes/controller/html/class_HtmlConfirmController.php +++ b/inc/main/classes/controller/html/class_HtmlConfirmController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Confirm; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Factory\ObjectFactory; use CoreFramework\Response\Responseable; diff --git a/inc/main/classes/controller/html/class_HtmlDefaultController.php b/inc/main/classes/controller/html/class_HtmlDefaultController.php index 5fbf4e35..6a108016 100644 --- a/inc/main/classes/controller/html/class_HtmlDefaultController.php +++ b/inc/main/classes/controller/html/class_HtmlDefaultController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Default; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Request\Requestable; use CoreFramework\Response\Responseable; diff --git a/inc/main/classes/controller/html/class_HtmlDefaultNewsController.php b/inc/main/classes/controller/html/class_HtmlDefaultNewsController.php index 8a793bb1..e659be7e 100644 --- a/inc/main/classes/controller/html/class_HtmlDefaultNewsController.php +++ b/inc/main/classes/controller/html/class_HtmlDefaultNewsController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\News; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Factory\ObjectFactory; use CoreFramework\Response\Responseable; diff --git a/inc/main/classes/controller/html/class_HtmlLoginController.php b/inc/main/classes/controller/html/class_HtmlLoginController.php index ddcfb2e9..f6f9581b 100644 --- a/inc/main/classes/controller/html/class_HtmlLoginController.php +++ b/inc/main/classes/controller/html/class_HtmlLoginController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Login; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Request\Requestable; use CoreFramework\Response\Responseable; diff --git a/inc/main/classes/controller/html/class_HtmlLoginFailedController.php b/inc/main/classes/controller/html/class_HtmlLoginFailedController.php index a32264a5..9d7b940e 100644 --- a/inc/main/classes/controller/html/class_HtmlLoginFailedController.php +++ b/inc/main/classes/controller/html/class_HtmlLoginFailedController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Failed; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Request\Requestable; use CoreFramework\Response\Responseable; diff --git a/inc/main/classes/controller/html/class_HtmlLogoutController.php b/inc/main/classes/controller/html/class_HtmlLogoutController.php index 8d96fb5d..46505967 100644 --- a/inc/main/classes/controller/html/class_HtmlLogoutController.php +++ b/inc/main/classes/controller/html/class_HtmlLogoutController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Logout; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Factory\ObjectFactory; use CoreFramework\Request\Requestable; use CoreFramework\Response\Responseable; diff --git a/inc/main/classes/controller/html/class_HtmlLogoutDoneController.php b/inc/main/classes/controller/html/class_HtmlLogoutDoneController.php index 4a2fa09a..28460c47 100644 --- a/inc/main/classes/controller/html/class_HtmlLogoutDoneController.php +++ b/inc/main/classes/controller/html/class_HtmlLogoutDoneController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Logout; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Request\Requestable; /** diff --git a/inc/main/classes/controller/html/class_HtmlProblemController.php b/inc/main/classes/controller/html/class_HtmlProblemController.php index de8bbf37..3cb81435 100644 --- a/inc/main/classes/controller/html/class_HtmlProblemController.php +++ b/inc/main/classes/controller/html/class_HtmlProblemController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Problem; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Request\Requestable; use CoreFramework\Response\Responseable; diff --git a/inc/main/classes/controller/html/class_HtmlRegisterController.php b/inc/main/classes/controller/html/class_HtmlRegisterController.php index e6214f61..5357cedb 100644 --- a/inc/main/classes/controller/html/class_HtmlRegisterController.php +++ b/inc/main/classes/controller/html/class_HtmlRegisterController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Register; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Response\Responseable; /** diff --git a/inc/main/classes/controller/html/class_HtmlStatusController.php b/inc/main/classes/controller/html/class_HtmlStatusController.php index 59e13bd0..83dbe645 100644 --- a/inc/main/classes/controller/html/class_HtmlStatusController.php +++ b/inc/main/classes/controller/html/class_HtmlStatusController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Status; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Request\Requestable; use CoreFramework\Response\Responseable; diff --git a/inc/main/classes/controller/html/form/class_HtmlDoFormController.php b/inc/main/classes/controller/html/form/class_HtmlDoFormController.php index d71343b5..379300c5 100644 --- a/inc/main/classes/controller/html/form/class_HtmlDoFormController.php +++ b/inc/main/classes/controller/html/form/class_HtmlDoFormController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Form; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Request\Requestable; use CoreFramework\Response\Responseable; diff --git a/inc/main/classes/controller/html/login/class_HtmlLoginAreaController.php b/inc/main/classes/controller/html/login/class_HtmlLoginAreaController.php index 7b4c5d82..0b4608a0 100644 --- a/inc/main/classes/controller/html/login/class_HtmlLoginAreaController.php +++ b/inc/main/classes/controller/html/login/class_HtmlLoginAreaController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Login; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Factory\ObjectFactory; use CoreFramework\Request\Requestable; use CoreFramework\Response\Responseable; diff --git a/inc/main/classes/controller/image/captcha/class_ImageCodeCaptchaController.php b/inc/main/classes/controller/image/captcha/class_ImageCodeCaptchaController.php index a8144cee..165dfd76 100644 --- a/inc/main/classes/controller/image/captcha/class_ImageCodeCaptchaController.php +++ b/inc/main/classes/controller/image/captcha/class_ImageCodeCaptchaController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Image\Captcha; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Factory\ObjectFactory; use CoreFramework\Request\Requestable; use CoreFramework\Response\Responseable; diff --git a/inc/main/classes/controller/image/class_ImageDefaultController.php b/inc/main/classes/controller/image/class_ImageDefaultController.php index 37424f9d..c1e22b8c 100644 --- a/inc/main/classes/controller/image/class_ImageDefaultController.php +++ b/inc/main/classes/controller/image/class_ImageDefaultController.php @@ -4,6 +4,7 @@ namespace CoreFramework\Controller\Default; // Import framework stuff use CoreFramework\Controller\BaseController; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Request\Requestable; use CoreFramework\Response\Responseable; diff --git a/inc/main/classes/resolver/class_BaseResolver.php b/inc/main/classes/resolver/class_BaseResolver.php index 395cc863..ddbf41dd 100644 --- a/inc/main/classes/resolver/class_BaseResolver.php +++ b/inc/main/classes/resolver/class_BaseResolver.php @@ -29,6 +29,11 @@ use CoreFramework\Object\BaseFrameworkSystem; * along with this program. If not, see . */ class BaseResolver extends BaseFrameworkSystem { + /** + * Namespace + */ + private $namespace = ''; + /** * Class name */ @@ -61,6 +66,25 @@ class BaseResolver extends BaseFrameworkSystem { parent::__construct($className); } + /** + * Getter for namespace + * + * @return $namespace Namespace to look in + */ + public final function getNamespace () { + return $this->namespace; + } + + /** + * Setter for namespace + * + * @param $namespace Namespace to look in + * @return void + */ + protected final function setNamespace ($namespace) { + $this->namespace = (string) $namespace; + } + /** * Getter for class name * @@ -70,6 +94,16 @@ class BaseResolver extends BaseFrameworkSystem { return $this->className; } + /** + * Setter for class name + * + * @param $className Name of the class + * @return void + */ + protected final function setClassName ($className) { + $this->className = (string) $className; + } + /** * "Getter" for class name (useable for an object factory) * @@ -86,16 +120,6 @@ class BaseResolver extends BaseFrameworkSystem { return $className; } - /** - * Setter for class name - * - * @param $className Name of the class - * @return void - */ - protected final function setClassName ($className) { - $this->className = (string) $className; - } - /** * Getter for class prefix * diff --git a/inc/main/classes/resolver/controller/class_BaseControllerResolver.php b/inc/main/classes/resolver/controller/class_BaseControllerResolver.php index fdcf6af0..3d318897 100644 --- a/inc/main/classes/resolver/controller/class_BaseControllerResolver.php +++ b/inc/main/classes/resolver/controller/class_BaseControllerResolver.php @@ -3,10 +3,11 @@ namespace CoreFramework\Resolver\Controller; // Import framework stuff +use CoreFramework\Controller\DefaultControllerException; +use CoreFramework\Controller\Generic\Controller; use CoreFramework\Factory\ObjectFactory; use CoreFramework\Resolver\BaseResolver; use CoreFramework\Resolver\Controller\ControllerResolver; - /** * A generic controller resolver class * @@ -46,13 +47,12 @@ class BaseControllerResolver extends BaseResolver { * controller was not found one of the default controllers will be used * depending on whether news shall be displayed. * - * @param $namespace Namespace to look in * @param $controllerName A controller name we shall look for * @return $controllerInstance A loaded controller instance * @throws InvalidControllerException Thrown if even the requested * controller class is missing (bad!) */ - protected function loadController ($namespace, $controllerName) { + protected function loadController ($controllerName) { // Cache default controller $defaultController = $this->getConfigInstance()->getConfigEntry('default_' . strtolower($this->getClassPrefix()) . '_controller'); @@ -62,7 +62,7 @@ class BaseControllerResolver extends BaseResolver { // Create full class name $className = sprintf( '%s\%sDefaultNewsController', - $namespace, + $this->getNamespace(), $this->getCapitalizedClassPrefix() ); @@ -150,7 +150,7 @@ class BaseControllerResolver extends BaseResolver { ); // Debug message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('className=%s', $className)); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('className=%s', $className)); // Now, let us create the full name of the controller class $this->setClassName($className); @@ -188,11 +188,10 @@ class BaseControllerResolver extends BaseResolver { $controllerInstance = NULL; // Get namespace and controller name - $namespace = $this->getNamespace(); $controllerName = $this->getControllerName(); // Get the controller - $controllerInstance = $this->loadController($namspace, $controllerName); + $controllerInstance = $this->loadController($controllerName); // And validate it if ((!is_object($controllerInstance)) || (!$controllerInstance instanceof Controller)) { diff --git a/inc/main/interfaces/controller/class_Controller.php b/inc/main/interfaces/controller/class_Controller.php index 0a2d52c4..e5a89457 100644 --- a/inc/main/interfaces/controller/class_Controller.php +++ b/inc/main/interfaces/controller/class_Controller.php @@ -1,6 +1,6 @@