X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=index.php;h=3ba9290f823a382fa3c6d47cebf42227d0f9913e;hp=9bd38f95bc50b3a8350e8d8d1f7dc0a4e44bfdef;hb=6e0f0121a45058e64816ef6d1c621ba4218c1095;hpb=bbf8d1ba0d35bac874225f0f9ef2102b4dbb1c78 diff --git a/index.php b/index.php index 9bd38f95..3ba9290f 100644 --- a/index.php +++ b/index.php @@ -4,8 +4,10 @@ namespace CoreFramework\EntryPoint; // Import framework stuff use CoreFramework\Configuration\FrameworkConfiguration; +use CoreFramework\Factory\ObjectFactory; use CoreFramework\Helper\Application\ApplicationHelper; use CoreFramework\Loader\ClassLoader; +use CoreFramework\Generic\FrameworkException; /** * The main class with the entry point to the whole application. This class @@ -175,15 +177,50 @@ final class ApplicationEntryPoint { /** * Determines the correct absolute path for all includes only once per run. - * Other calls of this method are being "cached". + * Other calls of this method are being "cached". This is done by checking + * a small list of common paths where the framework can reside and check if + * framework/config.php can be found. * * @return $corePath Base path (core) for all includes */ protected static final function detectCorePath () { // Is it not set? if (empty(self::$corePath)) { - // Auto-detect our core path - self::$corePath = str_replace("\\", '/', dirname(__FILE__)); + // Auto-detect core path (first application-common) + foreach (array('core', '.') as $possiblePath) { + // Create full path for testing + $realPath = realpath($possiblePath); + + // Debug message + //* NOISY-DEBUG: */ printf('[%s:%d]: realPath[%s]=%s' . PHP_EOL, __METHOD__, __LINE__, gettype($realPath), $realPath); + + // Is it FALSE? + if ($realPath === FALSE) { + // Then, not found. + continue; + } // END - if + + // First create full-qualified file name (FQFN) to framework/config.php + $fqfn = sprintf( + '%s%sframework%sconfig.php', + $realPath, + DIRECTORY_SEPARATOR, + DIRECTORY_SEPARATOR, + $possiblePath + ); + + // Debug message + //* NOISY-DEBUG: */ printf('[%s:%d]: fqfn=%s' . PHP_EOL, __METHOD__, __LINE__, $fqfn); + + // Is it readable? + if (is_readable($fqfn)) { + // Found one + self::$corePath = $realPath; + + // Abort here + break; + } // END - if + } // END - foreach } // END - if // Return it @@ -199,22 +236,22 @@ final class ApplicationEntryPoint { * @return void */ public static final function main () { - // Load config file, this provides $cfg - require(self::detectCorePath() . '/inc/config.php'); + // Load config file, this no longer provides $cfg + require(self::detectCorePath() . '/framework/config.php'); // Get a new configuration instance $cfg = FrameworkConfiguration::getSelfInstance(); // Load bootstrap class - require($cfg->getConfigEntry('base_path') . 'inc/bootstrap/class_BootstrapFramework.php'); + require($cfg->getConfigEntry('base_path') . 'framework/bootstrap/class_BootstrapFramework.php'); // ----- Below is deprecated ----- // Load all include files - require($cfg->getConfigEntry('base_path') . 'inc/includes.php'); + require($cfg->getConfigEntry('base_path') . 'framework/includes.php'); // Include the application selector - require($cfg->getConfigEntry('base_path') . 'inc/selector.php'); + require($cfg->getConfigEntry('base_path') . 'framework/selector.php'); } } @@ -228,6 +265,3 @@ define('DEVELOPER', TRUE); // Call above main() method ApplicationEntryPoint::main(); - -// [EOF] -?>