mirror of
https://github.com/predis/predis.git
synced 2026-09-16 21:36:58 +00:00
Backported changes from the mainline library to the PHP 5.2 branch (up to commit ca422b0)
This commit is contained in:
@@ -1,7 +1,14 @@
|
||||
v0.6.4 (2011-??-??)
|
||||
v0.6.4 (2011-02-12)
|
||||
* Various performance improvements (15% ~ 25%) especially when dealing with
|
||||
long multibulk replies or when using clustered connections.
|
||||
|
||||
* Added the "on_retry" option to Predis_MultiExecBlock that can be used to
|
||||
specify an external callback (or any callable object) that gets invoked
|
||||
whenever a transaction is aborted by the server.
|
||||
|
||||
* Added inline (p)subscribtion via options when initializing an instance of
|
||||
Predis_PubSubContext.
|
||||
|
||||
v0.6.3 (2011-01-01)
|
||||
* New commands available in the Redis v2.2 profile (dev):
|
||||
- Strings: SETRANGE, GETRANGE, SETBIT, GETBIT
|
||||
|
||||
+21
-4
@@ -294,8 +294,8 @@ class Predis_Client {
|
||||
return $transBlock !== null ? $multi->execute($transBlock) : $multi;
|
||||
}
|
||||
|
||||
public function pubSubContext() {
|
||||
return new Predis_PubSubContext($this);
|
||||
public function pubSubContext(Array $options = null) {
|
||||
return new Predis_PubSubContext($this, $options);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1060,12 +1060,16 @@ class Predis_PubSubContext implements Iterator {
|
||||
const STATUS_SUBSCRIBED = 0x0010;
|
||||
const STATUS_PSUBSCRIBED = 0x0100;
|
||||
|
||||
private $_redisClient, $_position;
|
||||
private $_redisClient, $_position, $_options;
|
||||
|
||||
public function __construct(Predis_Client $redisClient) {
|
||||
public function __construct(Predis_Client $redisClient, Array $options = null) {
|
||||
$this->checkCapabilities($redisClient);
|
||||
$this->_options = isset($options) ? $options : array();
|
||||
$this->_redisClient = $redisClient;
|
||||
$this->_statusFlags = self::STATUS_VALID;
|
||||
|
||||
$this->genericSubscribeInit('subscribe');
|
||||
$this->genericSubscribeInit('psubscribe');
|
||||
}
|
||||
|
||||
public function __destruct() {
|
||||
@@ -1089,6 +1093,19 @@ class Predis_PubSubContext implements Iterator {
|
||||
}
|
||||
}
|
||||
|
||||
private function genericSubscribeInit($subscribeAction) {
|
||||
if (isset($this->_options[$subscribeAction])) {
|
||||
if (is_array($this->_options[$subscribeAction])) {
|
||||
foreach ($this->_options[$subscribeAction] as $subscription) {
|
||||
$this->$subscribeAction($subscription);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$this->$subscribeAction($this->_options[$subscribeAction]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function isFlagSet($value) {
|
||||
return ($this->_statusFlags & $value) === $value;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user