Explorar o código

Make it possible to use any kind of callable for PUB/SUB callbacks.

Daniele Alessandri %!s(int64=13) %!d(string=hai) anos
pai
achega
a910807666
Modificáronse 2 ficheiros con 4 adicións e 4 borrados
  1. 1 1
      lib/Predis/Client.php
  2. 3 3
      lib/Predis/PubSub/DispatcherLoop.php

+ 1 - 1
lib/Predis/Client.php

@@ -377,7 +377,7 @@ class Client
         }
 
         foreach ($pubsub as $message) {
-            if ($callable($pubsub, $message) === false) {
+            if (call_user_func($callable, $pubsub, $message) === false) {
                 $pubsub->closeContext();
             }
         }

+ 3 - 3
lib/Predis/PubSub/DispatcherLoop.php

@@ -124,18 +124,18 @@ class DispatcherLoop
             if ($kind !== PubSubContext::MESSAGE && $kind !== PubSubContext::PMESSAGE) {
                 if (isset($this->subscriptionCallback)) {
                     $callback = $this->subscriptionCallback;
-                    $callback($message);
+                    call_user_func($callback, $message);
                 }
                 continue;
             }
 
             if (isset($this->callbacks[$message->channel])) {
                 $callback = $this->callbacks[$message->channel];
-                $callback($message->payload);
+                call_user_func($callback, $message->payload);
             }
             else if (isset($this->defaultCallback)) {
                 $callback = $this->defaultCallback;
-                $callback($message);
+                call_user_func($callback, $message);
             }
         }
     }