jorgezf / sequence
1.1.0
2023-02-23 21:39 UTC
Requires
- php: ^7.4 | ~8.0 | ~8.1
- ext-json: *
- ext-mbstring: *
- react/partial: ~2.0
- revinate/php-getter-setter: 1.0.0
Requires (Dev)
- phpunit/phpunit: 9.6.*
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 中包含测试。