php-kit/flow

PHP 的迭代器天堂

1.1.1 2017-06-26 18:26 UTC

This package is auto-updated.

Last update: 2024-09-11 15:18:59 UTC


README

PHP 的迭代器天堂

运行时要求

  • PHP >= 5.4

介绍

Flow 提供了一个流畅的接口来组装迭代器链和其他数据处理操作。

流畅的 API 使其 非常容易和直观 使用本机 SPL 迭代器(以及该库提供的一些自定义迭代器)和表达式的语法允许您以优雅、简洁和可读的方式组装复杂的处理管道。

使用此构建器组装的迭代器链可以对数据流执行多次转换,而无需在内存中存储中间步骤的结果。当操作大型数据集时,这种机制可以在内存消耗上非常轻量。

链的输入可以是任何类型的 可迭代对象。可迭代对象是可以转换为迭代器的东西。它们可以是原生数组、可遍历的(实现原生 IteratorIteratorAggregate 接口的类)、调用生成器函数(PHP>=5.5)或甚至调用者(例如闭包)。

Flow 允许您使用 FunctionIterator 类在 PHP<5.5 上使用常用函数编写生成器函数。

Flow 构建器

待办事项:在此处提供示例。

迭代器

Flow 还提供了一组有用的迭代器库,它补充和扩展了标准 PHP 库(SPL)提供的基本集合。

这些是迭代器:

CachedIterator

记忆化另一个迭代器的值,以便后续迭代不需要再次迭代它。

ConditionalIterator

迭代另一个迭代器,直到迭代完成或给定的回调返回 false(两者先发生者为准)。

FlipIterator

迭代给定的迭代器,交换键和值或反之亦然。

FunctionIterator

通过重复调用函数或类方法来迭代生成的值。

LoopIterator

允许在另一迭代器上循环,有一些约束。

UnfoldIterator

替换并扩展另一个迭代器的每个迭代值。

MapIterator

使用回调函数转换另一个迭代器中的数据。

RangeIterator

遍历生成的数字序列。

RecursiveIterator

一个通用递归迭代器,它通过用户定义的回调函数定义递归。

ReduceIterator

将函数应用于累加器和给定迭代器的每个值,以将迭代数据减少到单个值。

ReindexIterator

迭代另一个迭代器,用生成的数字序列替换键。

SingleValueIterator

提供单个常量值的迭代。

注意

某些操作需要在操作应用之前将迭代数据“具体化”,即完全迭代并存储为内部数组,例如:reverse()sort()。对于需要所有数据都存在的操作,结果数据将自动转换为迭代器。

许可证

此库是开源软件,根据 MIT 许可证 许可。

Flow - 版权所有 © 2015 Impactwave, Lda。