diff -u b/core/includes/bootstrap.inc b/core/includes/bootstrap.inc --- b/core/includes/bootstrap.inc +++ b/core/includes/bootstrap.inc @@ -3166,7 +3166,7 @@ $loader->registerNamespaces(array( 'Drupal\Core' => DRUPAL_ROOT . '/core/lib', 'Drupal\Component' => DRUPAL_ROOT . '/core/lib', - 'Drupal\Drivers' => DRUPAL_ROOT . '/drivers/lib', + 'Drupal\Driver' => DRUPAL_ROOT . '/drivers/lib', )); // Register namespaces and PEAR-like prefixes for vendor libraries managed diff -u b/core/includes/install.inc b/core/includes/install.inc --- b/core/includes/install.inc +++ b/core/includes/install.inc @@ -134,9 +134,11 @@ // contains a database.inc file. That allows us to drop in additional drivers // without modifying the installer. require_once DRUPAL_ROOT . '/core/includes/database.inc'; - $files = file_scan_directory(DRUPAL_ROOT . '/core/lib/Drupal/Core/Database/Driver', '/^[a-z]*$/i', array('recurse' => FALSE)); - if (is_dir(DRUPAL_ROOT . '/drivers/lib/Drupal/Drivers/Database')) { - $files += file_scan_directory(DRUPAL_ROOT . '/drivers/lib/Drupal/Drivers/Database/', '/^[a-z_]+$/i', array('recurse' => FALSE)); + // Allow any valid PHP identifier. + $mask = '/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/'; + $files = file_scan_directory(DRUPAL_ROOT . '/core/lib/Drupal/Core/Database/Driver', $mask, array('recurse' => FALSE)); + if (is_dir(DRUPAL_ROOT . '/drivers/lib/Drupal/Driver/Database')) { + $files += file_scan_directory(DRUPAL_ROOT . '/drivers/lib/Drupal/Driver/Database/', $mask, array('recurse' => FALSE)); } foreach ($files as $file) { if (file_exists($file->uri . '/Install/Tasks.php')) { @@ -961,7 +963,7 @@ return new $task_class(); } else { - $task_class = "Drupal\\Drivers\\Database\\{$driver}\\Install\\Tasks"; + $task_class = "Drupal\\Driver\\Database\\{$driver}\\Install\\Tasks"; return new $task_class(); } } diff -u b/core/lib/Drupal/Core/Database/Connection.php b/core/lib/Drupal/Core/Database/Connection.php --- b/core/lib/Drupal/Core/Database/Connection.php +++ b/core/lib/Drupal/Core/Database/Connection.php @@ -624,6 +624,7 @@ $driver_class = $this->connectionOptions['namespace'] . '\\' . $class; } else { + // Fallback for Drupal 7 settings.php. $driver_class = "Drupal\\Core\\Database\\Driver\\{$driver}\\{$class}"; } $this->driverClasses[$class] = class_exists($driver_class) ? $driver_class : $class; diff -u b/core/lib/Drupal/Core/Database/Database.php b/core/lib/Drupal/Core/Database/Database.php --- b/core/lib/Drupal/Core/Database/Database.php +++ b/core/lib/Drupal/Core/Database/Database.php @@ -378,6 +378,7 @@ $driver_class = self::$databaseInfo[$key][$target]['namespace'] . '\\Connection'; } else { + // Fallback for Drupal 7 settings.php. $driver_class = "Drupal\\Core\\Database\\Driver\\{$driver}\\Connection"; } $new_connection = new $driver_class(self::$databaseInfo[$key][$target]);