mirror of
https://github.com/predis/predis.git
synced 2026-08-25 03:29:32 +00:00
Deprecate Client::pubSub() in favor of Client::pubSubLoop().
Client::pubSub() still works like usual by returning a new pub/sub context, but it is now considered an alias of Client::pubSubLoop(). This change is necessary in preparation for the next major version of Predis where Client::pubSub() will be used for the new PUBSUB command introduced in Redis 2.8.
This commit is contained in:
@@ -18,7 +18,7 @@ require 'SharedConfigurations.php';
|
||||
$client = new Predis\Client($single_server + array('read_write_timeout' => 0));
|
||||
|
||||
// Initialize a new pubsub context
|
||||
$pubsub = $client->pubSub();
|
||||
$pubsub = $client->pubSubLoop();
|
||||
|
||||
// Subscribe to your channels
|
||||
$pubsub->subscribe('control_channel', 'notifications');
|
||||
|
||||
+18
-1
@@ -394,10 +394,27 @@ class Client implements ClientInterface
|
||||
* Creates a new Publish / Subscribe context and returns it, or executes it
|
||||
* inside the optionally provided callable object.
|
||||
*
|
||||
* @deprecated This method will change in the next major release to support
|
||||
* the new PUBSUB command introduced in Redis 2.8. Please use
|
||||
* Client::pubSubLoop() to create Predis\PubSub\PubSubContext
|
||||
* instances from now on.
|
||||
*
|
||||
* @param mixed $arg,... Options for the context, a callable object, or both.
|
||||
* @return MultiExecContext|array
|
||||
* @return PubSubExecContext|array
|
||||
*/
|
||||
public function pubSub(/* arguments */)
|
||||
{
|
||||
return call_user_func_array(array($this, 'pubSubLoop'), func_get_args());
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new Publish / Subscribe context and returns it, or executes it
|
||||
* inside the optionally provided callable object.
|
||||
*
|
||||
* @param mixed $arg,... Options for the context, a callable object, or both.
|
||||
* @return PubSubExecContext|array
|
||||
*/
|
||||
public function pubSubLoop(/* arguments */)
|
||||
{
|
||||
return $this->sharedInitializer(func_get_args(), 'initPubSub');
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ class DispatcherLoop
|
||||
public function __construct(ClientInterface $client)
|
||||
{
|
||||
$this->callbacks = array();
|
||||
$this->pubSubContext = $client->pubSub();
|
||||
$this->pubSubContext = $client->pubSubLoop();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -584,24 +584,24 @@ class ClientTest extends StandardTestCase
|
||||
/**
|
||||
* @group disconnected
|
||||
*/
|
||||
public function testPubSubWithoutArgumentsReturnsPubSubContext()
|
||||
public function testPubSubLoopWithoutArgumentsReturnsPubSubContext()
|
||||
{
|
||||
$client = new Client();
|
||||
|
||||
$this->assertInstanceOf('Predis\PubSub\PubSubContext', $pubsub = $client->pubSub());
|
||||
$this->assertInstanceOf('Predis\PubSub\PubSubContext', $pubsub = $client->pubSubLoop());
|
||||
}
|
||||
|
||||
/**
|
||||
* @group disconnected
|
||||
*/
|
||||
public function testPubSubWithArrayReturnsPubSubContextWithOptions()
|
||||
public function testPubSubLoopWithArrayReturnsPubSubContextWithOptions()
|
||||
{
|
||||
$connection = $this->getMock('Predis\Connection\SingleConnectionInterface');
|
||||
$options = array('subscribe' => 'channel');
|
||||
|
||||
$client = new Client($connection);
|
||||
|
||||
$this->assertInstanceOf('Predis\PubSub\PubSubContext', $pubsub = $client->pubSub($options));
|
||||
$this->assertInstanceOf('Predis\PubSub\PubSubContext', $pubsub = $client->pubSubLoop($options));
|
||||
|
||||
$reflection = new \ReflectionProperty($pubsub, 'options');
|
||||
$reflection->setAccessible(true);
|
||||
@@ -612,7 +612,7 @@ class ClientTest extends StandardTestCase
|
||||
/**
|
||||
* @group disconnected
|
||||
*/
|
||||
public function testPubSubWithArrayAndCallableExecutesPubSub()
|
||||
public function testPubSubLoopWithArrayAndCallableExecutesPubSub()
|
||||
{
|
||||
// NOTE: we use a subscribe count of 0 in the fake message to trick
|
||||
// the context and to make it think that it can be closed
|
||||
@@ -631,7 +631,17 @@ class ClientTest extends StandardTestCase
|
||||
->method('__invoke');
|
||||
|
||||
$client = new Client($connection);
|
||||
$client->pubSub($options, $callable);
|
||||
$client->pubSubLoop($options, $callable);
|
||||
}
|
||||
|
||||
/**
|
||||
* @group disconnected
|
||||
*/
|
||||
public function testPubSubIsAliasForPubSubLoop()
|
||||
{
|
||||
$client = new Client();
|
||||
|
||||
$this->assertInstanceOf('Predis\PubSub\PubSubContext', $client->pubSub());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user