Add the 'prefix' client option. The client will automatically prepend the specified prefix string to each key.

This commit is contained in:
Daniele Alessandri
2011-05-05 17:16:14 +02:00
parent 46db0409a1
commit e97e13bde5
4 changed files with 17 additions and 4 deletions
+1 -4
View File
@@ -8,10 +8,7 @@ require 'SharedConfigurations.php';
// user-level namespaces for you keyspace, thus eliminating the need for separate
// logical databases.
use Predis\Commands\Processors\KeyPrefixProcessor;
$client = new Predis\Client();
$client->getProfile()->setProcessor(new KeyPrefixProcessor('nrk:'));
$client = new Predis\Client($single_server, array('prefix' => 'nrk:'));
$client->mset(array('foo' => 'bar', 'lol' => 'wut'));
var_dump($client->mget('foo', 'lol'));
+3
View File
@@ -16,6 +16,9 @@ class Client {
$options = $this->filterOptions($options);
$this->_options = $options;
$this->_profile = $options->profile;
if ($prefixer = $options->prefix) {
$this->_profile->setProcessor($prefixer);
}
$this->_connectionFactory = $options->connections;
$this->_connection = $this->initializeConnection($parameters);
}
+2
View File
@@ -3,6 +3,7 @@
namespace Predis;
use Predis\Options\IOption;
use Predis\Options\ClientPrefix;
use Predis\Options\ClientProfile;
use Predis\Options\ClientCluster;
use Predis\Options\ClientConnectionFactory;
@@ -23,6 +24,7 @@ class ClientOptions {
'profile' => new ClientProfile(),
'connections' => new ClientConnectionFactory(),
'cluster' => new ClientCluster(),
'prefix' => new ClientPrefix(),
);
return self::$_sharedOptions;
}
+11
View File
@@ -0,0 +1,11 @@
<?php
namespace Predis\Options;
use Predis\Commands\Processors\KeyPrefixProcessor;
class ClientPrefix extends Option {
public function validate($value) {
return new KeyPrefixProcessor($value);
}
}