Unverified Commit 89fe91f7 authored by Stas's avatar Stas Committed by GitHub

Merge pull request #1954 from divine/pr_1491

[Updated PR#1491] Gets database name from DSN string
parents 1c8a84b6 0f5b1779
......@@ -38,7 +38,7 @@ class Connection extends BaseConnection
$this->connection = $this->createConnection($dsn, $config, $options);
// Select database
$this->db = $this->connection->selectDatabase($config['database']);
$this->db = $this->connection->selectDatabase($this->getDatabaseDsn($dsn, $config['database']));
$this->useDefaultPostProcessor();
......@@ -188,10 +188,21 @@ class Connection extends BaseConnection
// Check if we want to authenticate against a specific database.
$auth_database = isset($config['options']) && !empty($config['options']['database']) ? $config['options']['database'] : null;
return 'mongodb://' . implode(',', $hosts) . ($auth_database ? '/' . $auth_database : '');
}
/**
* Get database name from DSN string, if there is no database in DSN path - returns back $database argument.
* @param string $dsn
* @param $database
* @return string
*/
protected function getDatabaseDsn($dsn, $database)
{
$dsnDatabase = trim(parse_url($dsn, PHP_URL_PATH), '/');
return trim($dsnDatabase) ? $dsnDatabase : $database;
}
/**
* Create a DSN string from a configuration.
* @param array $config
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment