> */ protected iterable $iterators; /** * @param iterable> $iterators */ public function __construct(iterable $iterators) { $this->iterators = $iterators; } /** * Return an iterator for the rows of a data table. * * @return \Generator */ public function getIterator() : Traversable { foreach ($this->iterators as $iterator) { foreach ($iterator as $record) { yield $record; } } } }