1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- /*
- * This file is part of the Predis package.
- *
- * (c) Daniele Alessandri <suppakilla@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Predis\Collection\Iterator;
- use Predis\ClientInterface;
- /**
- * Abstracts the iteration of fields and values of an hash
- * by leveraging the HSCAN command (Redis >= 2.8) wrapped
- * in a fully-rewindable PHP iterator.
- *
- * @author Daniele Alessandri <suppakilla@gmail.com>
- * @link http://redis.io/commands/scan
- */
- class HashKey extends CursorBasedIterator
- {
- protected $key;
- /**
- * {@inheritdoc}
- */
- public function __construct(ClientInterface $client, $key, $match = null, $count = null)
- {
- $this->requiredCommand($client, 'HSCAN');
- parent::__construct($client, $match, $count);
- $this->key = $key;
- }
- /**
- * {@inheritdoc}
- */
- protected function executeCommand()
- {
- return $this->client->hscan($this->key, $this->cursor, $this->getScanOptions());
- }
- /**
- * {@inheritdoc}
- */
- protected function extractNext()
- {
- $this->position = key($this->elements);
- $this->current = array_shift($this->elements);
- }
- }
|