From 45bc9dea4a662eedad283e17cbeb71bb5f9eee21 Mon Sep 17 00:00:00 2001 From: Roland Haeder Date: Sun, 26 Feb 2017 14:00:29 +0100 Subject: [PATCH] Rewrites: - rewrote detectCorePath() so it can handle more than one (.) path - all my applications have this framework cloned to "./core/" and currently uses a symbolic link inc/ -> core/inc/. This is then no longer needed and should be removed from all projects. This surely implies that index.php has been distributed on all projects. - later on this will be changed, then there is no class in index.php, but only one include file and one call to main() method. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- index.php | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/index.php b/index.php index 308cda92..8a0bec3b 100644 --- a/index.php +++ b/index.php @@ -177,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 + * inc/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 inc/config.php + $fqfn = sprintf( + '%s%sinc%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 -- 2.30.2