Partially rewrite the client options bits and remove some madness.

The concept is now similar to a little dependency-injection system.
This commit is contained in:
Daniele Alessandri
2011-12-01 09:01:13 +01:00
parent 1ae30d62db
commit a5bf0eb41a
10 changed files with 61 additions and 73 deletions
@@ -24,13 +24,13 @@ class ClientConnectionFactory extends Option
/**
* {@inheritdoc}
*/
public function validate($value)
public function validate(IClientOptions $options, $value)
{
if ($value instanceof IConnectionFactory) {
return $value;
}
if (is_array($value)) {
$factory = $this->getDefault();
$factory = $this->getDefault($options);
foreach ($value as $scheme => $initializer) {
$factory->define($scheme, $initializer);
}
@@ -41,7 +41,7 @@ class ClientConnectionFactory extends Option
/**
* {@inheritdoc}
*/
public function getDefault()
public function getDefault(IClientOptions $options)
{
return new ConnectionFactory();
}