sergiors / pipeline
组合操作序列,无副作用且不可变
2.0.0
2017-04-19 12:49 UTC
Requires
- php: ^7.0
Requires (Dev)
- pdepend/pdepend: ~2.0
- phing/phing: ~2.10
- phploc/phploc: ~2.1
- phpmd/phpmd: ~2.2
- phpunit/phpunit: ^5.2
- sebastian/phpcpd: ~2.0
- squizlabs/php_codesniffer: ~2.1
This package is not auto-updated.
Last update: 2024-09-14 18:47:33 UTC
README
安装
composer require sergiors/pipeline
如何使用
use Sergiors\Pipeline\Pipeline; $pipeline = (new Pipeline) ->pipe(function ($payload) { return $payload + 2; }) ->pipe(function ($payload) { return $payload * 2; }); echo $pipeline(10); // => 24 // echo $pipeline->process(10);
$pipeline = (new Pipeline) ->pipe(function ($payload, $container) { ... }) ->pipe(function ($payload, $container) { ... }); $container = ...; $pipeline(10, $container);
您可以使用Sergiors\Pipeline\Reduce
、Sergiors\Pipeline\Filter
和Sergiors\Pipeline\Map
来使管道更易于阅读。
use Sergiors\Pipeline\Pipeline; use Sergiors\Pipeline\Filter; $getOrgs = (new Pipeline) ->pipe(new Filter(function ($org) { return $org instanceof OrgInterface; })); // an array with OrgInterface and UserInterface objects $users = [...]; print_r($getOrgs($users));
动机
许可证
MIT