revinate / sequence
PHP 的函数式编程库
1.0.0
2020-06-26 03:42 UTC
Requires
- php: >=7
- ext-json: *
- ext-mbstring: *
- react/partial: ~2.0
- revinate/php-getter-setter: 1.0.0
Requires (Dev)
- phpunit/phpunit: ^6.5
- dev-master
- 1.0.0
- v1.0.0-beta4
- v1.0.0-beta3
- v1.0.0-beta2
- v1.0.0-beta
- 0.4.6
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.9
- 0.3.8
- 0.3.7
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.4
- 0.1.3
- v0.1.0
- dev-php-getter-setter-update
- dev-php7.4_compat
- dev-addFilterOutAndFilterKeysOutFunctions
- dev-makeFnPluckWorkForMultidimensionalArraysAndObjects
This package is not auto-updated.
Last update: 2024-09-28 17:49:21 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 中。