final public static function Database::parseConnectionInfo
final public static Database::parseConnectionInfo()
Process the configuration file for database information.
File
- includes/database/database.inc, line 1552
- Core systems for the database layer.
Class
- Database
- Primary front-controller for the database system.
Code
final public static function parseConnectionInfo() { global $databases; $database_info = is_array($databases) ? $databases : array(); foreach ($database_info as $index => $info) { foreach ($database_info[$index] as $target => $value) { // If there is no "driver" property, then we assume it's an array of // possible connections for this target. Pick one at random. That allows // us to have, for example, multiple slave servers. if (empty($value['driver'])) { $database_info[$index][$target] = $database_info[$index][$target][mt_rand(0, count($database_info[$index][$target]) - 1)]; } // Parse the prefix information. if (!isset($database_info[$index][$target]['prefix'])) { // Default to an empty prefix. $database_info[$index][$target]['prefix'] = array( 'default' => '', ); } elseif (!is_array($database_info[$index][$target]['prefix'])) { // Transform the flat form into an array form. $database_info[$index][$target]['prefix'] = array( 'default' => $database_info[$index][$target]['prefix'], ); } } } if (!is_array(self::$databaseInfo)) { self::$databaseInfo = $database_info; } // Merge the new $database_info into the existing. // array_merge_recursive() cannot be used, as it would make multiple // database, user, and password keys in the same database array. else { foreach ($database_info as $database_key => $database_values) { foreach ($database_values as $target => $target_values) { self::$databaseInfo[$database_key][$target] = $target_values; } } } }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!database!database.inc/function/Database::parseConnectionInfo/7.x