Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- use Magento\Framework\Model\ResourceModel\IteratorFactory;
- class HugeTableIterator
- {
- /** @var IteratorFactory */
- private $iteratorFactory;
- /** UnbufferedQueryConnectionFactory */
- private $unbufferedQueryConnectionFactory;
- public function __construct(
- IteratorFactory $iteratorFactory,
- UnbufferedQueryConnectionFactory $unbufferedQueryConnectionFactory
- ) {
- $this->iteratorFactory = $iteratorFactory;
- $this->unbufferedQueryConnectionFactory = $unbufferedQueryConnectionFactory
- }
- public function processResults(): void
- {
- $connection = $this->unbufferedQueryConnectionFactory->factory();
- $iterator = $this->iteratorFactory->create();
- $query = $connection->select()->from('huge_table');
- $iterator->walk((string) $query, [function (array $result) {
- // do something with $result
- }], [], $connection);
- }
- }
Add Comment
Please, Sign In to add comment