From 274586036c617225150edb7515169a0bc7a5fa2c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sat, 7 Nov 2020 21:59:42 +0100 Subject: [PATCH] Continued: - let's get rid of own ObjectFactory::createObjectByName() construct and use the flexible (configurable) ObjectFactory::createObjectByConfiguredName() approach MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- application/tests/class_ApplicationHelper.php | 19 ++++++++++--------- application/tests/config.php | 3 +++ .../class_BaseControllerResolver.php | 2 +- .../class_TestsConsoleControllerResolver.php | 2 +- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/application/tests/class_ApplicationHelper.php b/application/tests/class_ApplicationHelper.php index 5224a07e..1a50658d 100644 --- a/application/tests/class_ApplicationHelper.php +++ b/application/tests/class_ApplicationHelper.php @@ -140,16 +140,17 @@ class ApplicationHelper extends BaseApplication implements ManageableApplication $requestInstance->setRequestElement('command', $commandName); } - // Get a controller resolver - $resolverClass = sprintf( - 'Org\Mxchange\CoreFramework\Tests\Resolver\Controller\%s', - StringUtils::convertToClassName(sprintf( - '%s_%s_controller_resolver', - $this->getAppShortName(), - FrameworkBootstrap::getRequestTypeFromSystem() - )) + // Configuration entry key + $configEntry = sprintf( + '%s_%s_controller_resolver_class', + $this->getAppShortName(), + FrameworkBootstrap::getRequestTypeFromSystem() ); - $resolverInstance = ObjectFactory::createObjectByName($resolverClass, array($commandName)); + + // Get a controller resolver instance + $resolverInstance = ObjectFactory::createObjectByConfiguredName($configEntry, [ + $commandName, + ]); // Get a controller instance as well $this->setControllerInstance($resolverInstance->resolveController()); diff --git a/application/tests/config.php b/application/tests/config.php index ee1d3c7e..3594c9ac 100644 --- a/application/tests/config.php +++ b/application/tests/config.php @@ -56,3 +56,6 @@ $cfg->setConfigEntry('tests_php_requirements_filter_class', 'Org\Mxchange\CoreFr // CFG: TEST-CONFIGURATION-CLASSES-LOADABLE-TEST-FILTER-CLASS $cfg->setConfigEntry('tests_configuration_classes_loadable_test_filter_class', 'Org\Mxchange\CoreFramework\Tests\Filter\Configuration\Classes\TestConfigurationLoadableClassesFilter'); + +// CFG: TEST-CONSOLE-CONTROLLER-RESOLVER-CLASS +$cfg->setConfigEntry('tests_console_controller_resolver_class', 'Org\Mxchange\CoreFramework\Tests\Resolver\Controller\TestsConsoleControllerResolver'); diff --git a/framework/main/classes/resolver/controller/class_BaseControllerResolver.php b/framework/main/classes/resolver/controller/class_BaseControllerResolver.php index c3b45fca..ddad2563 100644 --- a/framework/main/classes/resolver/controller/class_BaseControllerResolver.php +++ b/framework/main/classes/resolver/controller/class_BaseControllerResolver.php @@ -84,7 +84,7 @@ abstract class BaseControllerResolver extends BaseResolver { * @throws InvalidControllerException Thrown if even the requested * controller class is missing (bad!) */ - protected function loadController ($controllerName) { + protected function loadController (string $controllerName) { // Cache default controller $defaultController = FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('default_' . strtolower($this->getClassPrefix()) . '_controller'); diff --git a/framework/main/tests/resolver/controller/class_TestsConsoleControllerResolver.php b/framework/main/tests/resolver/controller/class_TestsConsoleControllerResolver.php index 4ab501d7..33095699 100644 --- a/framework/main/tests/resolver/controller/class_TestsConsoleControllerResolver.php +++ b/framework/main/tests/resolver/controller/class_TestsConsoleControllerResolver.php @@ -56,7 +56,7 @@ class TestsConsoleControllerResolver extends BaseControllerResolver implements C * @throws InvalidArgumentException Thrown if default command is not set * @throws InvalidControllerException Thrown if default controller is invalid */ - public static final function createTestsConsoleControllerResolver ($controllerName) { + public static final function createTestsConsoleControllerResolver (string $controllerName) { // Create the new instance $resolverInstance = new TestsConsoleControllerResolver(); -- 2.39.2