mirror of
https://github.com/predis/predis.git
synced 2026-09-14 20:37:29 +00:00
Use the shared initializer to initialize Pub/Sub and accept callbacks.
When a callback is specified, the client does not return a new instance of Predis\PubSubContext but it invokes that callback on each message received. The context can be aborted simply by returning FALSE from the callback.
This commit is contained in:
+14
-2
@@ -201,8 +201,20 @@ class Client {
|
||||
return isset($block) ? $transaction->execute($block) : $transaction;
|
||||
}
|
||||
|
||||
public function pubSubContext(Array $options = null) {
|
||||
return new PubSubContext($this, $options);
|
||||
public function pubSubContext(/* arguments */) {
|
||||
return $this->sharedInitializer(func_get_args(), 'initPubSub');
|
||||
}
|
||||
|
||||
protected function initPubSub(Array $options = null, $block = null) {
|
||||
$pubsub = new PubSubContext($this, $options);
|
||||
if (!isset($block)) {
|
||||
return $pubsub;
|
||||
}
|
||||
foreach ($pubsub as $message) {
|
||||
if ($block($pubsub, $message) === false) {
|
||||
$pubsub->closeContext();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function monitor() {
|
||||
|
||||
Reference in New Issue
Block a user