sergiors / pipeline
Compose sequence of operations, immutable without side-effects
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-12-21 20:36:07 UTC
README
Install
composer require sergiors/pipeline
How to use
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);
You can use Sergiors\Pipeline\Reduce
, Sergiors\Pipeline\Filter
and Sergiors\Pipeline\Map
to compose the pipeline more readable.
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));
Motivation
License
MIT