2017 © Pedro Peláez
 

library rewindable-generator

Now your generators become rewindable.

image

bentools/rewindable-generator

Now your generators become rewindable.

  • Monday, April 30, 2018
  • by bpolaszek
  • Repository
  • 1 Watchers
  • 1 Stars
  • 19 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 90 % Grown

The README.md

Latest Stable Version License CI Workflow Coverage Total Downloads, (*1)

Rewindable generator

$generator = (function () {
    yield 'foo';
    yield 'bar';
})();

var_dump(iterator_to_array($generator)); // ['foo', 'bar']
var_dump(iterator_to_array($generator)); // Boom

PHP Fatal error: Uncaught Exception: Cannot traverse an already closed generator, (*2)

Yes, I know. That's annoying. But here's a tiny class which will leverage a CachingIterator to make your generator rewindable., (*3)

Simple as:, (*4)

use BenTools\RewindableGenerator;

$generator = (function () {
    yield 'foo';
    yield 'bar';
})();

$iterator = new RewindableGenerator($generator);

var_dump(iterator_to_array($iterator)); // ['foo', 'bar']
var_dump(iterator_to_array($iterator)); // ['foo', 'bar']

Warning: An exception will be thrown if you intend to rewind a generator which has not reached the end (i.e you breakthe loop), since the CachingIterator won't have all items in cache., (*5)

Installation

composer require bentools/rewindable-generator, (*6)

Tests

./vendor/bin/phpunit, (*7)

The Versions

30/04 2018

dev-master

9999999-dev

Now your generators become rewindable.

  Sources   Download

MIT

The Requires

  • php >=5.5

 

The Development Requires

generators generator iterator rewindable

26/04 2018

1.0

1.0.0.0

Now your generators become rewindable.

  Sources   Download

MIT

The Requires

  • php >=5.5

 

The Development Requires

generators generator iterator rewindable

26/04 2018

1.0.1

1.0.1.0

Now your generators become rewindable.

  Sources   Download

MIT

The Requires

  • php >=5.5

 

The Development Requires

generators generator iterator rewindable