From 077617424ce4917fa6bdbb01873c0c2207342a03 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Tue, 17 Aug 2010 15:30:01 +0000 Subject: - Patch #857206 by Stevel: fixed database autoloader. --- includes/database/database.inc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'includes/database') diff --git a/includes/database/database.inc b/includes/database/database.inc index 1ca68eea8..73cb243e5 100644 --- a/includes/database/database.inc +++ b/includes/database/database.inc @@ -2138,8 +2138,16 @@ function db_autoload($class) { foreach ($driver_files as $file => $classes) { if (in_array($base, $classes)) { - require_once "{$base_path}/{$driver}/{$file}"; - return; + $filename = "{$base_path}/{$driver}/{$file}"; + // We might end up looking in a file that doesn't exist, so check that. + if (file_exists($filename)) { + require_once $filename; + // If the class now exists, we're done. Otherwise keep searching in + // additional files. + if (class_exists($class, FALSE) || interface_exists($class, FALSE)) { + return; + } + } } } } -- cgit v1.2.3