Implement Predis\Client::getClientFor() to initialize a new client from a single connection of a cluster by its alias.

This commit is contained in:
Daniele Alessandri
2010-05-22 12:22:15 +02:00
parent 5427bdcf22
commit 1f663f06be
+20
View File
@@ -151,6 +151,26 @@ class Client {
return $this->_responseReader;
}
public function getClientFor($connectionAlias) {
if (!($this->_connection instanceof ConnectionCluster)) {
throw new ClientException(
'This method is supported only when the client is connected to a cluster of connections.'
);
}
$connection = $this->_connection->getConnectionById($connectionAlias);
if ($connection === null) {
throw new \InvalidArgumentException(
"Invalid connection alias: '$connectionAlias'."
);
}
$newClient = new Client();
$newClient->setupClient($this->_options);
$newClient->setConnection($this->getConnection($connectionAlias));
return $newClient;
}
public function connect() {
$this->_connection->connect();
}