Guest User

Untitled

a guest
Nov 12th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. <?php
  2.  
  3. use Magento\Framework\Model\ResourceModel\IteratorFactory;
  4.  
  5. class HugeTableIterator
  6. {
  7. /** @var IteratorFactory */
  8. private $iteratorFactory;
  9.  
  10. /** UnbufferedQueryConnectionFactory */
  11. private $unbufferedQueryConnectionFactory;
  12.  
  13. public function __construct(
  14. IteratorFactory $iteratorFactory,
  15. UnbufferedQueryConnectionFactory $unbufferedQueryConnectionFactory
  16. ) {
  17. $this->iteratorFactory = $iteratorFactory;
  18. $this->unbufferedQueryConnectionFactory = $unbufferedQueryConnectionFactory
  19. }
  20.  
  21. public function processResults(): void
  22. {
  23. $connection = $this->unbufferedQueryConnectionFactory->factory();
  24. $iterator = $this->iteratorFactory->create();
  25.  
  26. $query = $connection->select()->from('huge_table');
  27. $iterator->walk((string) $query, [function (array $result) {
  28. // do something with $result
  29. }], [], $connection);
  30. }
  31. }
Add Comment
Please, Sign In to add comment