]> git.mxchange.org Git - hub.git/blobdiff - inc/config/class_FrameworkConfiguration.php
Code merged from ship-simu repository
[hub.git] / inc / config / class_FrameworkConfiguration.php
index 8f6fa15f45cd254137a917bb7744bd481a3974f8..e3202603aba1317a735a0bfbf02dcc37b2206f3a 100644 (file)
@@ -2,8 +2,8 @@
 /**
  * A class for the configuration stuff implemented in a singleton design paddern
  *
- * NOTE: We cannot put this in inc/classes/ because it would be loaded (again)
- * in the class loader. See inc/loader/class_ClassLoader.php for instance
+ * NOTE: We cannot put this in inc/classes/ because it would be loaded (again) in
+ * class loader. See inc/loader/class_ClassLoader.php for instance
  *
  * @see                        ClassLoader
  * @author             Roland Haeder <webmaster@ship-simu.org>
@@ -51,46 +51,18 @@ class FrameworkConfiguration implements Registerable {
                // Empty for now
        }
 
-       /**
-        * "Create" a configuration instance
-        *
-        * @param       $enableDebug    Wether enable debug mode (default: off)
-        * @return      $cfgInstance    An instance of this configuration class
-        */
-       public final static function createFrameworkConfiguration ($enableDebug = false) {
-               /**
-                * For singleton design pattern because we only need a one-time-run
-                * through the initial configuration.
-                */
-               if (is_null(self::$cfgInstance))  {
-                       // CFG: ERROR-REPORTING
-                       @error_reporting(E_ALL | E_STRICT);
-
-                       /**
-                        * Shall we enable the debug mode?
-                        */
-                       if ($enableDebug) {
-                               define('DEBUG_MODE', true);
-                       }
-
-                       /**
-                        * Crate a config instance
-                        */
-                       self::$cfgInstance = new FrameworkConfiguration();
-               }
-
-               /**
-                * Return the instance
-                */
-               return self::$cfgInstance;
-       }
-
        /**
         * Getter for an instance of this class
         *
         * @return      $cfgInstance    An instance of this class
         */
        public final static function getInstance () {
+               // is the instance there?
+               if (is_null(self::$cfgInstance))  {
+                       // Create a config instance
+                       self::$cfgInstance = new FrameworkConfiguration();
+               } // END - if
+
                return self::$cfgInstance;
        }
 
@@ -231,7 +203,7 @@ class FrameworkConfiguration implements Registerable {
                } // END - if
 
                // Construct the full URL now and secure it against CSRF attacks
-               $baseUrl = $baseUrl . "://" . $this->detectDomain() . dirname($_SERVER['SCRIPT_NAME']);
+               $baseUrl = $baseUrl . "://" . $this->detectDomain() . $this->detectScriptPath();
 
                // Return the URL
                return $baseUrl;
@@ -256,6 +228,24 @@ class FrameworkConfiguration implements Registerable {
                return $fullDomain;
        }
 
+       /**
+        * Detect safely the script path without trailing slash which is the part
+        * between "http://your-domain.invalid/" and "script-name.php"
+        */
+       public function detectScriptPath () {
+               // Default is empty
+               $scriptPath = "";
+
+               // Is the scriptname set?
+               if (isset($_SERVER['SCRIPT_NAME'])) {
+                       // Get dirname of it
+                       $scriptPath = dirname($_SERVER['SCRIPT_NAME']);
+               } // END - if
+
+               // Return it
+               return $scriptPath;
+       }
+
        /**
         * Getter for field name
         *