]> git.mxchange.org Git - core.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Tue, 24 Nov 2020 03:14:09 +0000 (04:14 +0100)
committerRoland Häder <roland@mxchange.org>
Tue, 24 Nov 2020 03:14:09 +0000 (04:14 +0100)
- moved language instance methods from monolithic and wrong registry-usage to
  FrameworkBootstrap
- added type-hints for primitive variables (also maybe in last 3 commits)

Signed-off-by: Roland Häder <roland@mxchange.org>
16 files changed:
framework/bootstrap/class_FrameworkBootstrap.php
framework/main/classes/class_BaseFrameworkSystem.php
framework/main/classes/commands/class_BaseCommand.php
framework/main/classes/commands/html/class_HtmlConfirmCommand.php
framework/main/classes/commands/html/class_HtmlHomeCommand.php
framework/main/classes/commands/html/class_HtmlLoginAreaCommand.php
framework/main/classes/commands/html/class_HtmlLoginCommand.php
framework/main/classes/commands/html/class_HtmlLoginFailedCommand.php
framework/main/classes/commands/html/class_HtmlLogoutDoneCommand.php
framework/main/classes/commands/html/class_HtmlRegisterCommand.php
framework/main/classes/commands/html/class_HtmlStatusCommand.php
framework/main/classes/helper/html/blocks/class_HtmlBlockHelper.php
framework/main/classes/helper/html/links/class_HtmlLinkHelper.php
framework/main/classes/language/class_LanguageSystem.php
framework/main/classes/response/class_BaseResponse.php
framework/main/classes/utils/number/class_NumberUtils.php

index b102c97688b0d37baf3edd4fbf8e628ab1d2076d..ad1bf8a2a3168c816564bf81187affa9286a5a6f 100644 (file)
@@ -11,6 +11,7 @@ use Org\Mxchange\CoreFramework\EntryPoint\ApplicationEntryPoint;
 use Org\Mxchange\CoreFramework\Factory\ObjectFactory;
 use Org\Mxchange\CoreFramework\Generic\NullPointerException;
 use Org\Mxchange\CoreFramework\Helper\Application\ApplicationHelper;
+use Org\Mxchange\CoreFramework\Localization\ManageableLanguage;
 use Org\Mxchange\CoreFramework\Loader\ClassLoader;
 use Org\Mxchange\CoreFramework\Manager\ManageableApplication;
 use Org\Mxchange\CoreFramework\Middleware\Debug\DebugMiddleware;
@@ -74,6 +75,11 @@ final class FrameworkBootstrap {
         */
        private static $databaseInstance = NULL;
 
+       /**
+        * Language system instance
+        */
+       private static $languageInstance = NULL;
+
        /*
         * Includes applications may have. They will be tried in the given order,
         * some will become soon deprecated.
@@ -715,4 +721,23 @@ final class FrameworkBootstrap {
                return self::$databaseInstance;
        }
 
+       /**
+        * Private getter for language instance
+        *
+        * @return      $languageInstance       An instance of a ManageableLanguage class
+        */
+       public static function getLanguageInstance () {
+               return self::$languageInstance;
+       }
+
+       /**
+        * Setter for language instance
+        *
+        * @param       $languageInstance       An instance of a ManageableLanguage class
+        * @return      void
+        */
+       public static function setLanguageInstance (ManageableLanguage $languageInstance) {
+               self::$languageInstance = $languageInstance;
+       }
+
 }
index 0c7e737e4a6c49fc806d07a30be8c4fafb5332d1..00dd1f3bb27fd7c96d5e85f117565d31c7e963ed 100644 (file)
@@ -17,7 +17,6 @@ use Org\Mxchange\CoreFramework\Generic\UnsupportedOperationException;
 use Org\Mxchange\CoreFramework\Handler\Handleable;
 use Org\Mxchange\CoreFramework\Helper\Helper;
 use Org\Mxchange\CoreFramework\Loader\ClassLoader;
-use Org\Mxchange\CoreFramework\Localization\ManageableLanguage;
 use Org\Mxchange\CoreFramework\Manager\ManageableApplication;
 use Org\Mxchange\CoreFramework\Middleware\Debug\DebugMiddleware;
 use Org\Mxchange\CoreFramework\Registry\GenericRegistry;
@@ -510,27 +509,6 @@ abstract class BaseFrameworkSystem extends stdClass implements FrameworkInterfac
                return $webOutputInstance;
        }
 
-       /**
-        * Private getter for language instance
-        *
-        * @return      $langInstance   An instance to the language sub-system
-        */
-       protected final function getLanguageInstance () {
-               $langInstance = GenericRegistry::getRegistry()->getInstance('language');
-               return $langInstance;
-       }
-
-       /**
-        * Setter for language instance
-        *
-        * @param       $langInstance   An instance to the language sub-system
-        * @return      void
-        * @see         LanguageSystem
-        */
-       public final function setLanguageInstance (ManageableLanguage $langInstance) {
-               GenericRegistry::getRegistry()->addInstance('language', $langInstance);
-       }
-
        /**
         * Protected setter for user instance
         *
index 79482c98c05398a710c04a0e00673793d504ed19..6d6a9ebc77110d502d68c9e4d141bfde7282aabf 100644 (file)
@@ -3,6 +3,7 @@
 namespace Org\Mxchange\CoreFramework\Command;
 
 // Import framework stuff
+use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
 use Org\Mxchange\CoreFramework\Factory\ObjectFactory;
 use Org\Mxchange\CoreFramework\Object\BaseFrameworkSystem;
 use Org\Mxchange\CoreFramework\Registry\GenericRegistry;
@@ -154,7 +155,7 @@ abstract class BaseCommand extends BaseFrameworkSystem {
                $this->getTemplateInstance()->loadCodeTemplate($masterTemplate);
 
                // Set title
-               $this->getTemplateInstance()->assignVariable('title', $this->getLanguageInstance()->getMessage('page_' . $applicationInstance->getAppShortName() . '_' . $this->getResolverInstance()->getCommandName() . '_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.
index 3401e1ebf5fb9567a8f2e963d3e25af2a4c2bfc2..f22cd9cfe38b0f15e542b6310e2c974f5b20a796 100644 (file)
@@ -3,6 +3,7 @@
 namespace Org\Mxchange\CoreFramework\Command\Guest;
 
 // Import framework stuff
+use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
 use Org\Mxchange\CoreFramework\Command\BaseCommand;
 use Org\Mxchange\CoreFramework\Command\Commandable;
 use Org\Mxchange\CoreFramework\Controller\Controller;
@@ -108,7 +109,7 @@ class HtmlConfirmCommand extends BaseCommand implements Commandable {
                $this->getTemplateInstance()->loadCodeTemplate($masterTemplate);
 
                // Set title
-               $this->getTemplateInstance()->assignVariable('title', $this->getLanguageInstance()->getMessage('page_confirm_link_title'));
+               $this->getTemplateInstance()->assignVariable('title', FrameworkBootstrap::getLanguageInstance()->getMessage('page_confirm_link_title'));
 
                // Get user instance
                try {
index 91a69c31b9cb34a260f3be62cc942ec1379e9437..5213906da36e7a64e96ba58cefd89dee22cde129 100644 (file)
@@ -3,6 +3,7 @@
 namespace Org\Mxchange\CoreFramework\Command\Guest;
 
 // Import framework stuff
+use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
 use Org\Mxchange\CoreFramework\Command\BaseCommand;
 use Org\Mxchange\CoreFramework\Command\Commandable;
 use Org\Mxchange\CoreFramework\Controller\Controller;
@@ -104,7 +105,7 @@ class HtmlHomeCommand extends BaseCommand implements Commandable {
                $this->getTemplateInstance()->loadCodeTemplate($masterTemplate);
 
                // Set title
-               $this->getTemplateInstance()->assignVariable('title', $this->getLanguageInstance()->getMessage('page_home_title'));
+               $this->getTemplateInstance()->assignVariable('title', FrameworkBootstrap::getLanguageInstance()->getMessage('page_home_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.
index 266ba7c4bb66e9c46a7911c867ffc396f9df43f4..dd1aa58a3c6291554c073099194f038c66c2e8e2 100644 (file)
@@ -143,7 +143,7 @@ class HtmlLoginAreaCommand extends BaseCommand implements Commandable {
                $this->getTemplateInstance()->loadCodeTemplate($masterTemplate);
 
                // Set title
-               $this->getTemplateInstance()->assignVariable('title', $this->getLanguageInstance()->getMessage($this->actionName . '_title'));
+               $this->getTemplateInstance()->assignVariable('title', FrameworkBootstrap::getLanguageInstance()->getMessage($this->actionName . '_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.
index cef2596dd34e8109e2cf12ced686bf29fb2557eb..77f9be23716bcdbb8f505f7350e0730a4a46bdbf 100644 (file)
@@ -3,6 +3,7 @@
 namespace Org\Mxchange\CoreFramework\Command\Login;
 
 // Import framework stuff
+use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
 use Org\Mxchange\CoreFramework\Command\BaseCommand;
 use Org\Mxchange\CoreFramework\Command\Commandable;
 use Org\Mxchange\CoreFramework\Controller\Controller;
@@ -109,7 +110,7 @@ class HtmlLoginCommand extends BaseCommand implements Commandable {
                $this->getTemplateInstance()->loadCodeTemplate($masterTemplate);
 
                // Set title
-               $this->getTemplateInstance()->assignVariable('title', $this->getLanguageInstance()->getMessage('page_login_title'));
+               $this->getTemplateInstance()->assignVariable('title', FrameworkBootstrap::getLanguageInstance()->getMessage('page_login_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.
index 24356c36cd48f7e91ecd53102a2763d48f10d010..6507520cf8678a78fca0bb6eca34dcb55224b3ca 100644 (file)
@@ -3,6 +3,7 @@
 namespace Org\Mxchange\CoreFramework\Command\Failed;
 
 // Import framework stuff
+use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
 use Org\Mxchange\CoreFramework\Command\BaseCommand;
 use Org\Mxchange\CoreFramework\Command\Commandable;
 use Org\Mxchange\CoreFramework\Controller\Controller;
@@ -103,7 +104,7 @@ class HtmlLoginFailedCommand extends BaseCommand implements Commandable {
                $this->getTemplateInstance()->loadCodeTemplate($masterTemplate);
 
                // Set title
-               $this->getTemplateInstance()->assignVariable('title', $this->getLanguageInstance()->getMessage('login_failed_title'));
+               $this->getTemplateInstance()->assignVariable('title', FrameworkBootstrap::getLanguageInstance()->getMessage('login_failed_title'));
 
                // Assign base URL
                $this->getTemplateInstance()->assignConfigVariable('base_url');
index a7134cb646d9265f0227d937f7842da6f109eaec..6ef72aca5f59e2cb373d8493503ee1b46067e30f 100644 (file)
@@ -3,6 +3,7 @@
 namespace Org\Mxchange\CoreFramework\Command\Logout;
 
 // Import framework stuff
+use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
 use Org\Mxchange\CoreFramework\Command\BaseCommand;
 use Org\Mxchange\CoreFramework\Command\Commandable;
 use Org\Mxchange\CoreFramework\Controller\Controller;
@@ -103,7 +104,7 @@ class HtmlLogoutDoneCommand extends BaseCommand implements Commandable {
                $this->getTemplateInstance()->loadCodeTemplate($masterTemplate);
 
                // Set title
-               $this->getTemplateInstance()->assignVariable('title', $this->getLanguageInstance()->getMessage('logout_done_title'));
+               $this->getTemplateInstance()->assignVariable('title', FrameworkBootstrap::getLanguageInstance()->getMessage('logout_done_title'));
 
                // Assign base URL
                $this->getTemplateInstance()->assignConfigVariable('base_url');
index 3a223a7db1270a85ed3ff7921c3e9189f48f565b..1c65919a4451aedae2d64823fa95bc262e9a6e5e 100644 (file)
@@ -3,6 +3,7 @@
 namespace Org\Mxchange\CoreFramework\Command\Register;
 
 // Import framework stuff
+use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
 use Org\Mxchange\CoreFramework\Command\BaseCommand;
 use Org\Mxchange\CoreFramework\Command\Commandable;
 use Org\Mxchange\CoreFramework\Controller\Controller;
@@ -110,7 +111,7 @@ class HtmlRegisterCommand extends BaseCommand implements Commandable {
                $this->getTemplateInstance()->loadCodeTemplate($masterTemplate);
 
                // Set title
-               $this->getTemplateInstance()->assignVariable('title', $this->getLanguageInstance()->getMessage('page_register_title'));
+               $this->getTemplateInstance()->assignVariable('title', FrameworkBootstrap::getLanguageInstance()->getMessage('page_register_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.
index e829e11a7c7dea9634d0ffff18bfc4c64805c341..485ca585e63d70985818beecf930943db8621090 100644 (file)
@@ -3,6 +3,7 @@
 namespace Org\Mxchange\CoreFramework\Command\Status;
 
 // Import framework stuff
+use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
 use Org\Mxchange\CoreFramework\Command\BaseCommand;
 use Org\Mxchange\CoreFramework\Command\Commandable;
 use Org\Mxchange\CoreFramework\Controller\Controller;
@@ -103,7 +104,7 @@ class HtmlStatusCommand extends BaseCommand implements Commandable {
                $this->getTemplateInstance()->loadCodeTemplate($masterTemplate);
 
                // Set title
-               $this->getTemplateInstance()->assignVariable('title', $this->getLanguageInstance()->getMessage('page_status_title'));
+               $this->getTemplateInstance()->assignVariable('title', FrameworkBootstrap::getLanguageInstance()->getMessage('page_status_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.
index 7a6a697c3a892908b935ace4862d7b6c8a3d9a34..346d56da2552d7012a5293e22085b73ede99ac32 100644 (file)
@@ -104,7 +104,7 @@ class HtmlBlockHelper extends BaseHtmlHelper implements HelpableTemplate {
         */
        public function assignMessageField (string $templateVariable, string $messageId) {
                // Get message
-               $message = $this->getLanguageInstance()->getMessage($messageId);
+               $message = FrameworkBootstrap::getLanguageInstance()->getMessage($messageId);
 
                // And assign it
                $this->getTemplateInstance()->assignVariable($templateVariable, $message);
@@ -129,10 +129,10 @@ class HtmlBlockHelper extends BaseHtmlHelper implements HelpableTemplate {
         */
        protected function doFilterUserStatusTranslator (string $userStatus) {
                // Generate message id
-               $messageId = 'user_status_' . strtolower($userStatus);
+               $messageId = sprintf('user_status_%s', strtolower($userStatus));
 
                // Get that message
-               $translated = $this->getLanguageInstance()->getMessage($messageId);
+               $translated = FrameworkBootstrap::getLanguageInstance()->getMessage($messageId);
 
                // Return it
                return $translated;
index 13552a20490f712cf8cf673d51ff593b443ab3ac..dcef00c9499257be5e446793e916aac632396186 100644 (file)
@@ -322,10 +322,10 @@ class HtmlLinkHelper extends BaseHtmlHelper implements HelpableTemplate {
         */
        public function addActionLinkById ($linkAction, $languageId) {
                // Resolve the language string
-               $languageResolvedText = $this->getLanguageInstance()->getMessage('link_' . $languageId . '_text');
+               $languageResolvedText = FrameworkBootstrap::getLanguageInstance()->getMessage('link_' . $languageId . '_text');
 
                // Resolve the language string
-               $languageResolvedTitle = $this->getLanguageInstance()->getMessage('link_' . $languageId . '_title');
+               $languageResolvedTitle = FrameworkBootstrap::getLanguageInstance()->getMessage('link_' . $languageId . '_title');
 
                // Add the action link
                $this->addActionLink($linkAction, $languageResolvedText, $languageResolvedTitle);
@@ -340,10 +340,10 @@ class HtmlLinkHelper extends BaseHtmlHelper implements HelpableTemplate {
         */
        public function addLinkWithTextById ($languageId) {
                // Resolve the language string
-               $languageResolvedText = $this->getLanguageInstance()->getMessage('link_' . $languageId . '_text');
+               $languageResolvedText = FrameworkBootstrap::getLanguageInstance()->getMessage('link_' . $languageId . '_text');
 
                // Resolve the language string
-               $languageResolvedTitle = $this->getLanguageInstance()->getMessage('link_' . $languageId . '_title');
+               $languageResolvedTitle = FrameworkBootstrap::getLanguageInstance()->getMessage('link_' . $languageId . '_title');
 
                // Now add the link
                $linkContent = $this->renderLinkContentWithTextExtraContent($languageResolvedText, $languageResolvedTitle);
index 4a1c0fd06c705da1f095e74fd5213492c6a92eff..3080899bd2a0a39598dc7d6acbf08c03f44e7fc5 100644 (file)
@@ -79,7 +79,7 @@ class LanguageSystem extends BaseFrameworkSystem implements ManageableLanguage,
         * @throws      LanguagePathReadProtectedException      If $languageBasePath is
         *                                                                              read-protected
         */
-       public static final function createLanguageSystem ($languageBasePath = '') {
+       public static final function createLanguageSystem (string $languageBasePath = '') {
                // Get a new instance
                $langInstance = new LanguageSystem();
 
@@ -142,7 +142,7 @@ class LanguageSystem extends BaseFrameworkSystem implements ManageableLanguage,
         * @param       $languageBasePath       The relative base path for all language files
         * @return      void
         */
-       protected final function setLanguageBasePath ($languageBasePath) {
+       protected final function setLanguageBasePath (string $languageBasePath) {
                // And set it
                $this->languageBasePath = (string) $languageBasePath;
        }
@@ -153,10 +153,7 @@ class LanguageSystem extends BaseFrameworkSystem implements ManageableLanguage,
         * @param       $langCode       The language code for the current application
         * @return      void
         */
-       protected final function setLanguageCode ($langCode) {
-               // Cast it
-               $langCode = (string) $langCode;
-
+       protected final function setLanguageCode (string $langCode) {
                // And set it (only 2 chars)
                $this->langCode = substr($langCode, 0, 2);
        }
@@ -211,7 +208,7 @@ class LanguageSystem extends BaseFrameworkSystem implements ManageableLanguage,
         * @param       $messageId              The message id we shall find in the cache variable
         * @return      $messageText    The plain message text
         */
-       public function getMessage ($messageId) {
+       public function getMessage (string $messageId) {
                // Default is missing message text
                $messageText = sprintf('!%s!',
                        $messageId
index a52a53bf5a6e56f00a5585da75b74cb760db13db..3cc1807d66dffa8d9ff2ec8a38f3077de936b923 100644 (file)
@@ -147,11 +147,8 @@ abstract class BaseResponse extends BaseFrameworkSystem {
         * @return      void
         */
        public final function addFatalMessage ($messageId) {
-               // Get application instance
-               $applicationInstance = GenericRegistry::getRegistry()->getInstance('application');
-
                // Adds the resolved message id to the fatal message list
-               $this->addFatalMessagePlain($applicationInstance->getLanguageInstance()->getMessage($messageId));
+               $this->addFatalMessagePlain(FrameworkBootstrap::getLanguageInstance()->getMessage($messageId));
        }
 
        /**
index 2318858e614b2b5f791c691040567452e77df1cf..29afa81f2279fe0b1fd6b48fea98bd41e7743443 100644 (file)
@@ -45,7 +45,6 @@ final class NumberUtils extends BaseFrameworkSystem {
         *
         * @param       $value          The raw value from e.g. database
         * @return      $localized      Localized value
-        * @todo        Won't work as getLanguageInstance() is still in monolithic BaseFrameworkSystem
         */
        public static function doFilterFormatNumber ($value) {
                // Generate it from config and localize dependencies
@@ -70,7 +69,6 @@ final class NumberUtils extends BaseFrameworkSystem {
         *
         * @param       $timestamp      Timestamp to prepare (filter) for display
         * @return      $readable       A readable timestamp
-        * @todo        Won't work as getLanguageInstance() is still in monolithic BaseFrameworkSystem
         */
        public static function doFilterFormatTimestamp ($timestamp) {
                // Default value to return