X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=index.php;fp=index.php;h=ecf66b48876f5635b4848a966b756595673f1fec;hp=e058edadaccafcfcb3990887031456c133a816d1;hb=4e95c4e90f08f67f43591eaaa0c006f923d8bacf;hpb=bcc4c93c61443966ab39195d81ff9ecd26068b94 diff --git a/index.php b/index.php index e058edad..ecf66b48 100644 --- a/index.php +++ b/index.php @@ -10,6 +10,9 @@ use CoreFramework\Localization\LanguageSystem; use CoreFramework\Loader\ClassLoader; use CoreFramework\Generic\FrameworkException; +// Import SPL stuff +use \Exception; + /** * The main class with the entry point to the whole application. This class * "emulates" Java's entry point call. Additionally it covers local @@ -39,9 +42,9 @@ use CoreFramework\Generic\FrameworkException; */ final class ApplicationEntryPoint { /** - * Core path + * Framework path */ - private static $corePath = ''; + private static $frameworkPath = ''; /** * The application's emergency exit @@ -177,18 +180,18 @@ final class ApplicationEntryPoint { } /** - * Determines the correct absolute path for all includes only once per run. - * 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. + * Determines the correct absolute path for the framework. A set of common + * paths is being tested (first most common for applications, second when + * core tests are being executed and third/forth if the framework has been + * cloned there). * - * @return $corePath Base path (core) for all includes + * @return $frameworkPath Path for framework */ - protected static final function detectCorePath () { + public static final function detectFrameworkPath () { // Is it not set? - if (empty(self::$corePath)) { + if (empty(self::$frameworkPath)) { // Auto-detect core path (first application-common) - foreach (array('core', '.') as $possiblePath) { + foreach (array('core', '.', '/usr/local/share/php/core', '/usr/share/php/core') as $possiblePath) { // Create full path for testing $realPath = realpath($possiblePath); @@ -201,9 +204,9 @@ final class ApplicationEntryPoint { continue; } // END - if - // First create full-qualified file name (FQFN) to framework/config.php + // First create full-qualified file name (FQFN) to framework/config.inc.php $fqfn = sprintf( - '%s%sframework%sconfig.php', + '%s%sframework%sconfig.inc.php', $realPath, DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, @@ -211,21 +214,27 @@ final class ApplicationEntryPoint { ); // Debug message - //* NOISY-DEBUG: */ printf('[%s:%d]: fqfn=%s' . PHP_EOL, __METHOD__, __LINE__, $fqfn); + /* NOISY-DEBUG: */ printf('[%s:%d]: fqfn=%s' . PHP_EOL, __METHOD__, __LINE__, $fqfn); // Is it readable? if (is_readable($fqfn)) { // Found one - self::$corePath = $realPath; + self::$frameworkPath = $realPath . '/framework/'; // Abort here break; } // END - if } // END - foreach + + // Able to find? + if (!is_dir(self::$frameworkPath)) { + // Is no directory + throw new Exception('Cannot find framework.'); + } // END - if } // END - if // Return it - return self::$corePath; + return self::$frameworkPath; } /** @@ -237,22 +246,11 @@ final class ApplicationEntryPoint { * @return void */ public static final function main () { - // Load config file, this no longer provides $cfg - require(self::detectCorePath() . '/framework/config.php'); + // Load bootstrap file + require(self::detectFrameworkPath() . 'bootstrap/bootstrap.inc.php'); // Get a new configuration instance $cfg = FrameworkConfiguration::getSelfInstance(); - - // Load bootstrap class - require($cfg->getConfigEntry('base_path') . 'framework/bootstrap/class_BootstrapFramework.php'); - - // ----- Below is deprecated ----- - - // Load all include files - require($cfg->getConfigEntry('base_path') . 'framework/includes.php'); - - // Include the application selector - require($cfg->getConfigEntry('base_path') . 'framework/selector.php'); } }