descom / pipeline
pipeline to inject plugins
Installs: 6 431
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.4
- phpstan/phpstan: ^1.2
- phpunit/phpunit: ^9.3|^10.0|^10.5
This package is auto-updated.
Last update: 2024-11-18 16:12:11 UTC
README
Install
Via Composer
composer require descom/pipeline
Usage
Create Stages
Samples:
Create Pipeline
use Descom\Pipeline\PipeLine; class SamplePipeline extends PipeLine {}
Configure plugin to add Stages
SamplePipeline::getInstance() ->pipe(new DoubleStage()) ->pipe(new IncreaseStage());
Process pipeline to transform data in core
$payload = 10; $payload = SamplePipeline::getInstance() ->process($payload); // return 21 (10 * 2) + 1
Options
Perhaps you need to add options to the stages, for example, the number of times to double the value.
You can call method with
to add options to the stages.
$payload = 10; $payload = SamplePipeline::getInstance() ->process($payload, [ 'twiceDouble' => 3, 'twiceIncrease' => 2 ]); // return 82 (10 * 2 ^ 3) + (1 + 1)
You can define DoubleStage
as:
class DoubleStage extends Stage { public function handle($payload): int { $twiceDouble = $this->option('twiceDouble') ?? 1; return $payload * pow(2, $twiceDouble); } }
Testing
composer test