revinate/sequence

PHP 的函数式编程库

1.0.0 2020-06-26 03:42 UTC

README

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

PHP 兼容性

随着我们代码库的更新,我们不再支持 PHP 的旧版本。从版本 1.0 开始,我们将停止支持 PHP 5.3 和 PHP 5.4。

快速示例

通过向 composer.json 文件中添加此部分来安装软件包

"require": {
    "revinate/sequence": "~0.4"
},

这是一个小程序,用于了解 Sequence 的使用方法。

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

use Revinate\Sequence\Sequence;

$dataSet = array(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/revinate/sequence.git
composer install

然后运行测试

phpunit

这就是开始使用 Sequence 所需要的一切。请将测试包含在你的 pull request 中。