Implement ConnectionParameters::__toString().

This commit is contained in:
Daniele Alessandri
2011-03-05 16:36:34 +01:00
parent 6c9b246b2b
commit f668560a5a
+22
View File
@@ -83,6 +83,7 @@ class ConnectionParameters {
$query = explode('&', $parsed['query']);
$parsed = array_reduce($query, 'self::paramsExtractor', $parsed);
}
unset($parsed['query']);
return $this->filter($parsed);
}
@@ -118,4 +119,25 @@ class ConnectionParameters {
$value = $this->tryInitializeValue($parameter);
return isset($value);
}
public function __toString() {
$str = null;
if ($this->scheme === 'unix') {
$str = "{$this->scheme}://{$this->path}";
}
else {
$str = "{$this->scheme}://{$this->host}:{$this->port}";
}
$query = array();
$reject = array('scheme', 'host', 'port', 'password', 'path');
foreach ($this->_parameters as $k => $v) {
if (in_array($k, $reject) || $v === null) {
continue;
}
$v = $v === false ? '0' : $v;
$query[] = $k . '=' . ($v === false ? '0' : $v);
}
return count($query) > 0 ? ($str . '/?' . implode('&', $query)) : $str;
}
}