jeroen / rewindable-generator
提供了一种简单的适配器,可以将生成器变为可重置的
1.2.0
2017-05-16 01:01 UTC
Requires
- php: >=7.0
Requires (Dev)
- mediawiki/mediawiki-codesniffer: ~0.6.0
- ockcyp/covers-validator: ~0.6
- phpunit/phpunit: ~6.0
- squizlabs/php_codesniffer: ~2.5
This package is auto-updated.
Last update: 2024-08-28 23:08:35 UTC
README
提供了一种简单的适配器,可以将生成器变为可重置的。请注意,您也可以通过使用PHP的内置CachingIterator
来实现相同的功能。
不幸的是,您不能这样做
$generator = $myGeneratorFunction(); iterator_to_array($generator); iterator_to_array($generator); // boom!
或者这样做
$generator = $myGeneratorFunction(); $generator->next(); $generator->rewind(); // boom!
两者都会导致一个Exception
,这已经在tests/GeneratorTest.php
中的测试中得到证明。这个库提供了一个简单的类,它接受一个生成器函数(函数本身,而不是其返回值)并将其适配为一个可重置的Iterator
。
$generator = new RewindableGenerator($myGeneratorFunction); iterator_to_array($generator); iterator_to_array($generator); // works as expected $generator->rewind(); // works as expected
安装
要将此包作为本地、按项目依赖项添加到您的项目中,只需将jeroen/rewindable-generator
作为依赖项添加到您的项目中的composer.json
文件中。以下是一个定义了Rewindable Generator 1.x依赖项的最小composer.json
文件示例:
{ "require": { "jeroen/rewindable-generator": "~1.0" } }
运行测试
仅用于测试
composer test
仅用于风格检查
composer cs
用于完整的CI运行
composer ci
发行说明
版本 1.2.0 (2017-05-16)
- 移除了对PHP 5.x的支持
版本 1.1.1 (2015-11-08)
- 修复了HHVM兼容性。 也许...
版本 1.1.0 (2015-11-08)
- 为
RewindableGenerator
添加了onRewind
函数和第二个构造参数
版本 1.0.0 (2015-11-08)
- 首次发布 - 阅读博客文章