Unverified Commit cfe8e920 authored by Stas's avatar Stas Committed by GitHub

Merge branch 'master' into pr_1745

parents 0cf70e86 89fe91f7
...@@ -38,7 +38,7 @@ class Connection extends BaseConnection ...@@ -38,7 +38,7 @@ class Connection extends BaseConnection
$this->connection = $this->createConnection($dsn, $config, $options); $this->connection = $this->createConnection($dsn, $config, $options);
// Select database // Select database
$this->db = $this->connection->selectDatabase($config['database']); $this->db = $this->connection->selectDatabase($this->getDatabaseDsn($dsn, $config['database']));
$this->useDefaultPostProcessor(); $this->useDefaultPostProcessor();
...@@ -188,10 +188,21 @@ class Connection extends BaseConnection ...@@ -188,10 +188,21 @@ class Connection extends BaseConnection
// Check if we want to authenticate against a specific database. // Check if we want to authenticate against a specific database.
$auth_database = isset($config['options']) && !empty($config['options']['database']) ? $config['options']['database'] : null; $auth_database = isset($config['options']) && !empty($config['options']['database']) ? $config['options']['database'] : null;
return 'mongodb://' . implode(',', $hosts) . ($auth_database ? '/' . $auth_database : ''); 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. * Create a DSN string from a configuration.
* @param array $config * @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