lunkkun/caching-generator

A rewindable PHP Generator class that caches its generated values.

Maintainers

Package info

github.com/lunkkun/php-caching-generator

pkg:composer/lunkkun/caching-generator

Statistics

Installs: 17 450

Dependents: 0

Suggesters: 0

Stars: 4

Open Issues: 1

v3.1.0 2022-02-18 08:49 UTC

This package is auto-updated.

Last update: 2026-03-18 18:03:19 UTC


README

Introduction

A PHP Iterator class that you can wrap around a generator to cache its generated values. When iterating over this class for a second time, values will be pulled from the cache.

If stopped halfway through generating, when iterating for a second time, it will continue generating (and caching) values after exhausting the cache.

Installation

Require this package with composer using the following command:

composer require lunkkun/caching-generator

Usage

<?php

use Lunkkun\CachingGenerator\CachingGenerator;

$generator = function () {
    foreach (range(0, 2) as $value) {
        yield $value;
    }
};
$cachingGenerator = new CachingGenerator($generator());

foreach ($cachingGenerator as $value) {
    echo $value;
}

foreach ($cachingGenerator as $value) {
    echo $value;
}

Outputs:

012012

License

PHP Caching Generator is open-sourced software licensed under the MIT license.