jorgezf/sequence

PHP 的函数式编程库

1.1.0 2023-02-23 21:39 UTC

This package is auto-updated.

Last update: 2024-09-24 02:20:11 UTC


README

这个库使得在 PHP 中使用函数式编程风格变得更加容易。

重要

这个库是基于原始的 Revinate/Sequence 库 https://github.com/revinate/sequence 的分支。这个分支旨在升级库以与 PHP 8.1 版本兼容。

PHP 兼容性

随着我们的代码库向前推进,我们不再支持较老的 PHP 版本。从版本 1.0 开始,我们将停止支持 PHP 5.3 和 PHP 5.4。

快速示例

通过执行以下命令使用 composer 安装此包

composer require jorgezf/sequence

这是一个很小的脚本,用于了解 Sequence 的工作原理。

<?php
require_once __DIR__.'/vendor/autoload.php';

use Revinate\Sequence\Sequence;

$dataSet = [1, 2, 3, 4, 5];
$seq = Sequence::make($dataSet);

// At this point you have a sequence and you can do bunch of cool sequence stuff with it

$even = $seq->filter(static function($n) { return $n%2 == 0; });  // nothing is evaluated here because of lazy loading
foreach($even as $num) {
    echo "$num\n";
}


$twice = $seq->map(static function($n) { return $n * 2; });
foreach($twice as $num) {
    echo "$num\n";
}

此程序的输出将是

2
4
2
4
6
8
10

这仅仅只是 Sequence 可以实现的所有事情的一小部分。对于更详细的文档,请参阅 Wiki

如何参与

首先克隆仓库并安装依赖项

git clone https://github.com/jorgezf/sequence.git
composer install

然后运行测试

./vendor/bin/phpunit

这就是开始使用 Sequence 所需要的一切。请确保在 pull requests 中包含测试。