]> git.mxchange.org Git - core.git/blobdiff - framework/bootstrap/class_FrameworkBootstrap.php
Rewrite:
[core.git] / framework / bootstrap / class_FrameworkBootstrap.php
index a37c6bf95a8200fa770050389d007f1e52331033..2b79f2c4631396e03435e4be55c536a84b062815 100644 (file)
@@ -63,6 +63,11 @@ final class FrameworkBootstrap {
         */
        private static $responseInstance = NULL;
 
+       /**
+        * Instance of a FrameworkConfiguration class
+        */
+       private static $configurationInstance = NULL;
+
        /*
         * Includes applications may have. They will be tried in the given order,
         * some will become soon deprecated.
@@ -96,6 +101,22 @@ final class FrameworkBootstrap {
                // Prevent making instances from this "utilities" class
        }
 
+       /**
+        * Some "getter" for a configuration instance, making sure, it is unique
+        *
+        * @return      $configurationInstance  An instance of a FrameworkConfiguration class
+        */
+       public static function getConfigurationInstance () {
+               // Is the instance there?
+               if (is_null(self::$configurationInstance)) {
+                       // Init new instance
+                       self::$configurationInstance = new FrameworkConfiguration();
+               } // END - if
+
+               // Return it
+               return self::$configurationInstance;
+       }
+
        /**
         * Getter for request instance
         *
@@ -277,8 +298,8 @@ final class FrameworkBootstrap {
         */
        public static function prepareApplication () {
                // Configuration entry 'detected_app_name' must be set, get it here, including full path
-               $application = FrameworkConfiguration::getSelfInstance()->getConfigEntry('detected_app_name');
-               $fullPath    = FrameworkConfiguration::getSelfInstance()->getConfigEntry('detected_full_app_path');
+               $application = self::getConfigurationInstance()->getConfigEntry('detected_app_name');
+               $fullPath    = self::getConfigurationInstance()->getConfigEntry('detected_full_app_path');
 
                /*
                 * Now check and load all files, found deprecated files will throw a
@@ -325,7 +346,7 @@ final class FrameworkBootstrap {
         */
        public static function startApplication () {
                // Configuration entry 'detected_app_name' must be set, get it here
-               $application = FrameworkConfiguration::getSelfInstance()->getConfigEntry('detected_app_name');
+               $application = self::getConfigurationInstance()->getConfigEntry('detected_app_name');
 
                // Is there an application helper instance?
                $applicationInstance = call_user_func_array(
@@ -383,7 +404,7 @@ final class FrameworkBootstrap {
                } // END - if
 
                // Initialize database layer
-               $databaseInstance = ObjectFactory::createObjectByConfiguredName(FrameworkConfiguration::getSelfInstance()->getConfigEntry('database_type') . '_class');
+               $databaseInstance = ObjectFactory::createObjectByConfiguredName(self::getConfigurationInstance()->getConfigEntry('database_type') . '_class');
 
                // Prepare database instance
                $connectionInstance = DatabaseConnection::createDatabaseConnection(DebugMiddleware::getSelfInstance(), $databaseInstance);
@@ -550,7 +571,7 @@ final class FrameworkBootstrap {
         */
        private static function scanFrameworkClasses () {
                // Include the class loader function
-               require FrameworkConfiguration::getSelfInstance()->getConfigEntry('framework_base_path') . 'loader/class_ClassLoader.php';
+               require self::getConfigurationInstance()->getConfigEntry('framework_base_path') . 'loader/class_ClassLoader.php';
 
                // Register auto-load function with the SPL
                spl_autoload_register('CoreFramework\Loader\ClassLoader::autoLoad');
@@ -619,7 +640,7 @@ final class FrameworkBootstrap {
                // Construct FQPN (Full-Qualified Path Name) for ApplicationHelper class
                $applicationPath = sprintf(
                        '%s%s%s',
-                       FrameworkConfiguration::getSelfInstance()->getConfigEntry('application_base_path'),
+                       self::getConfigurationInstance()->getConfigEntry('application_base_path'),
                        $application,
                        DIRECTORY_SEPARATOR
                );
@@ -632,8 +653,8 @@ final class FrameworkBootstrap {
                } // END - if
 
                // Set the detected application's name and full path for later usage
-               FrameworkConfiguration::getSelfInstance()->setConfigEntry('detected_full_app_path', $applicationPath);
-               FrameworkConfiguration::getSelfInstance()->setConfigEntry('detected_app_name'     , $application);
+               self::getConfigurationInstance()->setConfigEntry('detected_full_app_path', $applicationPath);
+               self::getConfigurationInstance()->setConfigEntry('detected_app_name'     , $application);
        }
        /**
         * Setter for request instance