From bce91028898848b40abc2fdfa448221ed64b0dd7 Mon Sep 17 00:00:00 2001 From: Igor Veremchuk Date: Tue, 9 May 2017 16:56:52 +0200 Subject: [PATCH] Add credis module class --- Client.php | 2 +- Module.php | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ composer.json | 3 ++- 3 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 Module.php diff --git a/Client.php b/Client.php index f19d554..b3d1a0d 100755 --- a/Client.php +++ b/Client.php @@ -625,7 +625,7 @@ public function pUnsubscribe() /** * @param int $Iterator * @param string $pattern - * @param int $Iterator + * @param int $count * @return bool | Array */ public function scan(&$Iterator, $pattern = null, $count = null) diff --git a/Module.php b/Module.php new file mode 100644 index 0000000..70b9ba9 --- /dev/null +++ b/Module.php @@ -0,0 +1,68 @@ + + * @license http://www.opensource.org/licenses/mit-license.php The MIT License + * @package Credis_Module + */ +class Credis_Module +{ + const MODULE_COUNTING_BLOOM_FILTER = 'CBF'; + + /** @var Credis_Client */ + protected $client; + + /** @var string */ + protected $moduleName; + + /** + * @param Credis_Client $client + * @param string $module + */ + public function __construct(Credis_Client $client, $module = null) + { + $client->forceStandalone(); // Redis Modules command not currently supported by phpredis + $this->client = $client; + + if (isset($module)) { + $this->setModule($module); + } + } + + /** + * Clean up client on destruct + */ + public function __destruct() + { + $this->client->close(); + } + + /** + * @param $moduleName + * @return $this + */ + public function setModule($moduleName) + { + $this->moduleName = (string) $moduleName; + + return $this; + } + + /** + * @param string $name + * @param string $args + * @return mixed + */ + public function __call($name, $args) + { + if ($this->moduleName === null) { + throw new \LogicException('Module must be set.'); + } + + return call_user_func(array($this->client, sprintf('%s.%s', $this->moduleName, $name)), $args); + } +} diff --git a/composer.json b/composer.json index f09e7db..cac866c 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,8 @@ "classmap": [ "Client.php", "Cluster.php", - "Sentinel.php" + "Sentinel.php", + "Module.php" ] } }