Opt for a smaller and slightly more efficient solution.

This commit is contained in:
Daniele Alessandri
2011-03-31 00:17:11 +02:00
parent 85c1a7a852
commit 3d9ddeef98
+4 -8
View File
@@ -17,12 +17,6 @@ class ConnectionParameters {
$this->_userDefined = array_fill_keys(array_keys($this->_parameters), true);
}
private static function paramsExtractor($params, $kv) {
@list($k, $v) = explode('=', $kv);
$params[$k] = $v;
return $params;
}
private static function getSharedOptions() {
if (isset(self::$_sharedOptions)) {
return self::$_sharedOptions;
@@ -93,8 +87,10 @@ class ConnectionParameters {
throw new \InvalidArgumentException("Invalid URI: $uri");
}
if (isset($parsed['query'])) {
$query = explode('&', $parsed['query']);
$parsed = array_reduce($query, 'self::paramsExtractor', $parsed);
foreach (explode('&', $parsed['query']) as $kv) {
@list($k, $v) = explode('=', $kv);
$parsed[$k] = $v;
}
unset($parsed['query']);
}
return $this->filter($parsed);