Port the original version for PHP >= 5.6
This collection implement nikic/iter to provide lazy initialization and operation by using Generator
composer require reyhansofian/lazy-collection dev-master
$iterable = function () {
for ($i = 1; $i <= 5; $i++) {
yield $i;
}
};
$collection = IterableCollection::fromGenerator($iterable());
$collection = IterableCollection::fromArray([1, 2, 3, 4, 5]);
$iterable = function () {
for ($i = 1; $i <= 5; $i++) {
yield $i;
}
};
$result = IterableCollection::fromGenerator($iterable())
->map(function ($value) {
return $value * 10;
})
->filter(function ($value) {
return $value > 30;
})
->reduce(function ($acc, $value, $startValue) {
return $acc + $value;
});
// $result = 90
For more information, checkout the test
suite.
PRs are welcome!
MIT