12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Data;
- use Magento\Framework\DB\QueryInterface;
- /**
- * Class SearchResultIterator
- */
- class SearchResultIterator implements \Iterator
- {
- /**
- * @var SearchResultInterface
- */
- protected $searchResult;
- /**
- * @var QueryInterface
- */
- protected $query;
- /**
- * @var array
- */
- protected $current;
- /**
- * @var int
- */
- protected $key = 0;
- /**
- * @param AbstractSearchResult $searchResult
- * @param QueryInterface $query
- */
- public function __construct(AbstractSearchResult $searchResult, QueryInterface $query)
- {
- $this->searchResult = $searchResult;
- $this->query = $query;
- }
- /**
- * @return array|mixed
- */
- public function current()
- {
- return $this->current;
- }
- /**
- * @return void
- */
- public function next()
- {
- ++$this->key;
- $this->current = $this->searchResult->createDataObject($this->query->fetchItem());
- }
- /**
- * @return int|mixed
- */
- public function key()
- {
- return $this->key;
- }
- /**
- * @return bool
- */
- public function valid()
- {
- return !empty($this->current);
- }
- /**
- * @return void
- */
- public function rewind()
- {
- $this->current = null;
- $this->key = 0;
- $this->query->reset();
- $this->next();
- }
- }
|