1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- /**
- * Credis_Module
- *
- * Implements Redis Modules support. see http://redismodules.com
- *
- * @author Igor Veremchuk <igor.veremchuk@gmail.com>
- * @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);
- }
- }
|