From 8ade113070740b38949a738cc4ce82b9eda56504 Mon Sep 17 00:00:00 2001 From: Clemens Schwaighofer Date: Thu, 19 Sep 2019 18:54:46 +0900 Subject: [PATCH] autoloader update, config master, db io minor fixes Various not needed isset checks removed autoloader correctly checks that "LIB" is at the end of the path only --- www/admin/class_test.php | 2 +- www/configs/config.master.php | 9 ++++----- www/lib/CoreLibs/Basic.php | 5 ++--- www/lib/CoreLibs/DB/IO.php | 10 +++++----- www/lib/autoloader.php | 17 ++++++++++------- 5 files changed, 22 insertions(+), 21 deletions(-) diff --git a/www/admin/class_test.php b/www/admin/class_test.php index 2de50470..c76ab10b 100644 --- a/www/admin/class_test.php +++ b/www/admin/class_test.php @@ -23,7 +23,7 @@ if (!defined('SET_SESSION_NAME')) { define('SET_SESSION_NAME', EDIT_SESSION_NAME); } // define log file id -define('LOG_FILE_ID', 'classTest'); +$LOG_FILE_ID = 'classTest'; // set language for l10n $lang = 'en_utf8'; diff --git a/www/configs/config.master.php b/www/configs/config.master.php index a431185e..80a4b779 100644 --- a/www/configs/config.master.php +++ b/www/configs/config.master.php @@ -194,14 +194,13 @@ list($HOST_NAME) = array_pad(explode(':', $_SERVER['HTTP_HOST'], 2), 2, null); // we have either no db selction for this host but have db config entries // or we have a db selection but no db config as array or empty // or we have a selection but no matching db config entry -if ((!isset($SITE_CONFIG[$HOST_NAME]['db_host']) && isset($DB_CONFIG) && count($DB_CONFIG)) || +if ((!isset($SITE_CONFIG[$HOST_NAME]['db_host']) && count($DB_CONFIG)) || (isset($SITE_CONFIG[$HOST_NAME]['db_host']) && // missing DB CONFIG - (!isset($DB_CONFIG)) || - (isset($DB_CONFIG) && is_array($DB_CONFIG) && !count($DB_CONFIG)) || - (isset($DB_CONFIG) && !is_array($DB_CONFIG)) || + ((is_array($DB_CONFIG) && !count($DB_CONFIG)) || + !is_array($DB_CONFIG) || // has DB CONFIG but no match - (isset($DB_CONFIG) && is_array($DB_CONFIG) && count($DB_CONFIG) && !isset($DB_CONFIG[$SITE_CONFIG[$HOST_NAME]['db_host']])) + (is_array($DB_CONFIG) && count($DB_CONFIG) && !isset($DB_CONFIG[$SITE_CONFIG[$HOST_NAME]['db_host']]))) ) ) { echo 'No matching DB config found for: "'.$HOST_NAME.'". Contact Administrator'; diff --git a/www/lib/CoreLibs/Basic.php b/www/lib/CoreLibs/Basic.php index f7a75e85..7f883ead 100644 --- a/www/lib/CoreLibs/Basic.php +++ b/www/lib/CoreLibs/Basic.php @@ -95,9 +95,8 @@ namespace CoreLibs; // define check vars for the flags we can have -/** @internal */ -define('CLASS_STRICT_MODE', 1); -define('CLASS_OFF_COMPATIBLE_MODE', 2); +const CLASS_STRICT_MODE = 1; +const CLASS_OFF_COMPATIBLE_MODE = 2; /** Basic core class declaration */ class Basic diff --git a/www/lib/CoreLibs/DB/IO.php b/www/lib/CoreLibs/DB/IO.php index 01e58a2c..c629f8f6 100644 --- a/www/lib/CoreLibs/DB/IO.php +++ b/www/lib/CoreLibs/DB/IO.php @@ -1915,19 +1915,19 @@ class IO extends \CoreLibs\Basic { switch ($kbn) { case 'i': - $value = (!isset($value) || $value === '') ? "NULL" : intval($value); + $value = ($value === '') ? "NULL" : intval($value); break; case 'f': - $value = (!isset($value) || $value === '') ? "NULL" : floatval($value); + $value = ($value === '') ? "NULL" : floatval($value); break; case 't': - $value = (!isset($value) || $value === '') ? "NULL" : "'".$this->dbEscapeString($value)."'"; + $value = ($value === '') ? "NULL" : "'".$this->dbEscapeString($value)."'"; break; case 'd': - $value = (!isset($value) || $value === '') ? "NULL" : "'".$this->dbEscapeString($value)."'"; + $value = ($value === '') ? "NULL" : "'".$this->dbEscapeString($value)."'"; break; case 'i2': - $value = (!isset($value) || $value === '') ? 0 : intval($value); + $value = ($value === '') ? 0 : intval($value); break; } return $value; diff --git a/www/lib/autoloader.php b/www/lib/autoloader.php index 8d19cdcd..8f89e1c1 100644 --- a/www/lib/autoloader.php +++ b/www/lib/autoloader.php @@ -15,12 +15,15 @@ if (class_exists('Autoload', false) === false) { { // print "(1) Class: $class / DIR: ".__DIR__."
"; // set directory seperator (we need to replace from namespace) - $ds = defined('DS') ? DS : DIRECTORY_SEPARATOR; + $DS = defined('DS') ? DS : DIRECTORY_SEPARATOR; // base lib - $LIB = defined('LIB') ? LIB : 'lib'; - // if lib is in path, do not add lib again - if (strpos(__DIR__, $LIB) !== false) { - $LIB .= $ds; + $LIB = defined('LIB') ? LIB : 'lib'.$DS; + // if lib is in path at the end, do not add lib again + // note that $LIB can have a directory seperator at the end + // strip that out before we do a match + $_LIB = rtrim($LIB, $DS); + if (preg_match("|$_LIB$|", __DIR__) === false) { + $LIB .= $DS; } else { $LIB = ''; } @@ -35,9 +38,9 @@ if (class_exists('Autoload', false) === false) { // set default extension $extension = '.php'; // set full include path - $path = __DIR__.$ds.$LIB.substr($class, $len); + $path = __DIR__.$DS.$LIB.substr($class, $len); // replace namespace \ with dir sepeator - $path = str_replace('\\', $ds, $path).$extension; + $path = str_replace('\\', $DS, $path).$extension; // print "(2) Class clean: $path
"; // if path is set and a valid file if ($path !== false && is_file($path)) {