protected function parseConnectionParams($params, $defaults = [])
{
// Handle host shortcut
if (is_string($params)) {
$params = ['host' => $params];
}
// Convert keys from Bolt
$replacements = ['databasename' => 'dbname', 'username' => 'user'];
foreach ($replacements as $old => $new) {
if (isset($params[$old])) {
$params[$new] = $params[$old];
unset($params[$old]);
}
}
// Merge in defaults
$params = array_replace($defaults, $params);
// Filter out invalid keys
$validKeys = ['user', 'password', 'host', 'port', 'dbname', 'charset', 'path', 'memory', 'unix_socket', 'driverOptions', 'sslmode', 'servicename', 'service', 'pooled', 'instancename', 'server', 'persistent'];
$params = array_intersect_key($params, array_flip($validKeys));
return $params;
}