Skip to content

Instantly share code, notes, and snippets.

@jameshalsall
Last active November 12, 2018 16:26
<?php
use Magento\Framework\App\ResourceConnection;
use Magento\Framework\Model\ResourceModel\IteratorFactory;
class HugeTableIterator
{
/** @var ResourceConnection */
private $resourceConnection;
/** @var IteratorFactory */
private $iteratorFactory;
public function __construct(ResourceConnection $resourceConnection, IteratorFactory $iteratorFactory)
{
$this->resourceConnection = $resourceConnection;
$this->iteratorFactory = $iteratorFactory;
}
public function processResults(): void
{
$connection = $this->resourceConnection->getConnection();
$iterator = $this->iteratorFactory->create();
$query = $connection->select()->from('huge_table');
$iterator->walk((string) $query, [function (array $result) {
// do something with $result
}], [], $connection);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment