From b9694b61689d7b6b001f805fd307d9085e67701e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Tue, 28 Feb 2023 09:47:57 +0100 Subject: [PATCH] Continued: - added more debug lines - checked conditions (BMCE thrown) --- .../classes/commands/class_BaseCommand.php | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/framework/main/classes/commands/class_BaseCommand.php b/framework/main/classes/commands/class_BaseCommand.php index b31b1cb8..754217da 100644 --- a/framework/main/classes/commands/class_BaseCommand.php +++ b/framework/main/classes/commands/class_BaseCommand.php @@ -14,6 +14,7 @@ use Org\Mxchange\CoreFramework\Traits\Resolver\ResolverTrait; use Org\Mxchange\CoreFramework\Traits\Template\CompileableTemplateTrait; // Import SPL stuff +use \BadMethodCallException; use \InvalidArgumentException; /** @@ -59,10 +60,11 @@ abstract class BaseCommand extends BaseFrameworkSystem { * * @param $templateType Type of template, e.g. 'html', 'image', 'console' ... * @return void + * @throws InvalidArgumentException If a parameter has an invalid value */ public final function initTemplateEngine (string $templateType) { // Check paramter - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('BASE-COMMAND: templateType=%s - CALLED!', $templateType)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-COMMAND: templateType=%s - CALLED!', $templateType)); if (empty($templateType)) { // Throw IAE throw new InvalidArgumentException('Parameter "templateType" is empty', FrameworkInterface::EXCEPTION_INVALID_ARGUMENT); @@ -72,10 +74,11 @@ abstract class BaseCommand extends BaseFrameworkSystem { $templateInstance = ObjectFactory::createObjectByConfiguredName(sprintf('%s_template_class', $templateType)); // Set it here + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-COMMAND: templateInstance=%s', $templateInstance->__toString())); $this->setTemplateInstance($templateInstance); // Trace message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-COMMAND: EXIT!'); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-COMMAND: EXIT!'); } /** @@ -85,24 +88,33 @@ abstract class BaseCommand extends BaseFrameworkSystem { * @param $responseInstance An instance of a class with an Responseable interface * @param $suffix Optional template suffix, e.g. '_form' for forms * @return void + * @throws BadMethodCallException If a POST request ended here */ protected function sendGenericGetResponse (Requestable $requestInstance, Responseable $responseInstance, string $suffix = '') { - // This command doesn't handle any POST requests, so only handle get request - assert(!$requestInstance->isPostRequestMethod()); - - // Get the application instance - $applicationInstance = ApplicationHelper::getSelfInstance(); + // Check conditions + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('BASE-COMMAND: requestInstance=%s,responseInstance=%s,suffix=%s - CALLED!', $requestInstance->__toString(), $responseInstance->__toString(), $suffix)); + if ($requestInstance->isPostRequestMethod()) { + // POST request isn't handled here + throw new BadMethodCallException('This method does only handle GET/HEAD requests', FrameworkInterface::EXCEPTION_BAD_METHOD_CALL); + } // Transfer application data + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-COMMAND: Invoking this->templateInstance->assignApplicationData() ...'); $this->getTemplateInstance()->assignApplicationData(); // Assign base URL + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-COMMAND: Invoking this->templateInstance->assignConfigVariable(base_url) ...'); $this->getTemplateInstance()->assignConfigVariable('base_url'); + // Get the application instance + $applicationInstance = ApplicationHelper::getSelfInstance(); + // Load the master template + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-COMMAND: applicationInstance=%s', $applicationInstance->__toString())); $masterTemplate = $applicationInstance->buildMasterTemplateName(); // Load header template + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('BASE-COMMAND: masterTemplate=%s', $masterTemplate)); $this->getTemplateInstance()->loadCodeTemplate('header'); // Compile and assign it with a variable @@ -128,8 +140,11 @@ abstract class BaseCommand extends BaseFrameworkSystem { // Set title $this->getTemplateInstance()->assignVariable('title', FrameworkBootstrap::getLanguageInstance()->getMessage('page_' . $applicationInstance->getAppShortName() . '_' . $this->getResolverInstance()->getCommandName() . '_title')); - // Construct the menu in every command. We could do this in BaseCommand class. But this means - // *every* command has a navigation system and that is want we don't want. + /* + * Construct the menu in every command. We could do this in BaseCommand + * class. But this means *every* command has a navigation system and + * that is want we don't want. + */ $menuInstance = ObjectFactory::createObjectByConfiguredName($applicationInstance->getAppShortName() . '_' . $this->getResolverInstance()->getCommandName() . '_menu_class'); // Render the menu @@ -147,6 +162,9 @@ abstract class BaseCommand extends BaseFrameworkSystem { // Get the content back from the template engine and put it in response class $this->getTemplateInstance()->transferToResponse($responseInstance); + + // Trace message + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('BASE-COMMAND: EXIT!'); } } -- 2.39.2