Batch.php 713 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Indexer\SaveHandler;
  7. class Batch
  8. {
  9. /**
  10. * @param \Traversable $documents
  11. * @param int $size
  12. * @return \Generator
  13. */
  14. public function getItems(\Traversable $documents, $size)
  15. {
  16. $i = 0;
  17. $batch = [];
  18. foreach ($documents as $documentName => $documentValue) {
  19. $batch[$documentName] = $documentValue;
  20. if (++$i == $size) {
  21. yield $batch;
  22. $i = 0;
  23. $batch = [];
  24. }
  25. }
  26. if (count($batch) > 0) {
  27. yield $batch;
  28. }
  29. }
  30. }