From 600c07f1caa3fb176398af62ee2f042d7e819ef6 Mon Sep 17 00:00:00 2001 From: "Timothy J. Warren" Date: Wed, 2 Apr 2014 22:40:54 -0400 Subject: [PATCH] Move abstract classes and interfaces to their own respective folders --- autoload.php | 52 ++++++++++++------- classes/{ => abstract}/abstract_driver.php | 0 classes/{ => abstract}/abstract_sql.php | 0 classes/{ => interfaces}/driver_interface.php | 0 .../query_builder_interface.php | 0 classes/{ => interfaces}/sql_interface.php | 0 common.php | 4 +- 7 files changed, 36 insertions(+), 20 deletions(-) rename classes/{ => abstract}/abstract_driver.php (100%) rename classes/{ => abstract}/abstract_sql.php (100%) rename classes/{ => interfaces}/driver_interface.php (100%) rename classes/{ => interfaces}/query_builder_interface.php (100%) rename classes/{ => interfaces}/sql_interface.php (100%) diff --git a/autoload.php b/autoload.php index 9d86827..ef351eb 100644 --- a/autoload.php +++ b/autoload.php @@ -44,26 +44,42 @@ function query_autoload($class) { $class_segments = explode('\\', $class); $class = strtolower(array_pop($class_segments)); - - // Load Firebird separately - if (function_exists('fbird_connect') && $class === 'firebird') + + // Load DB Driver classes + if ($class_segments == array('Query', 'Driver')) { - array_map('do_include', glob(QDRIVER_PATH.'/firebird/*.php')); - return; - } - - $class_path = QBASE_PATH . "classes/{$class}.php"; - - $driver_path = QDRIVER_PATH . "{$class}"; - - if (is_file($class_path)) require_once($class_path); - elseif (is_dir($driver_path)) - { - $class = str_replace("pdo_", "", $class); - - if (in_array($class, PDO::getAvailableDrivers())) + $driver_path = QDRIVER_PATH . "{$class}"; + // @codeCoverageIgnoreStart + if (is_dir($driver_path)) { - array_map('do_include', glob("{$driver_path}/*.php")); + // Firebird is a special case, since it's not a PDO driver + if ( + in_array($class, PDO::getAvailableDrivers()) + || function_exists('fbird_connect') && $class === 'firebird' + ) + { + + array_map('do_include', glob("{$driver_path}/*.php")); + return; + } + + } + // @codeCoverageIgnoreEnd + } + + // Load other classes + foreach(array( + QBASE_PATH . "classes/interfaces/{$class}.php", + QBASE_PATH . "classes/abstract/{$class}.php", + QBASE_PATH . "classes/{$class}.php" + ) as $path) + { + if (file_exists($path)) + { + // @codeCoverageIgnoreStart + require_once($path); + return; + // @codeCoverageIgnoreEnd } } } diff --git a/classes/abstract_driver.php b/classes/abstract/abstract_driver.php similarity index 100% rename from classes/abstract_driver.php rename to classes/abstract/abstract_driver.php diff --git a/classes/abstract_sql.php b/classes/abstract/abstract_sql.php similarity index 100% rename from classes/abstract_sql.php rename to classes/abstract/abstract_sql.php diff --git a/classes/driver_interface.php b/classes/interfaces/driver_interface.php similarity index 100% rename from classes/driver_interface.php rename to classes/interfaces/driver_interface.php diff --git a/classes/query_builder_interface.php b/classes/interfaces/query_builder_interface.php similarity index 100% rename from classes/query_builder_interface.php rename to classes/interfaces/query_builder_interface.php diff --git a/classes/sql_interface.php b/classes/interfaces/sql_interface.php similarity index 100% rename from classes/sql_interface.php rename to classes/interfaces/sql_interface.php diff --git a/common.php b/common.php index a51bfe4..34eb4cb 100644 --- a/common.php +++ b/common.php @@ -77,7 +77,7 @@ function db_filter($array, $index) /** * Connection function * - * @param mixed $params + * @param string|object|array $params * @return Query_Builder */ function Query($params = '') @@ -89,7 +89,7 @@ function Query($params = '') { return $cmanager->get_connection($params); } - elseif ( ! is_scalar($params)) + elseif ( ! is_scalar($params) && ! is_null($params)) { $params = new ArrayObject($params, ArrayObject::STD_PROP_LIST | ArrayObject::ARRAY_AS_PROPS);