Via Composer
composer require descom/pipelineSamples:
use Descom\Pipeline\PipeLine;
class SamplePipeline extends PipeLine
{} SamplePipeline::getInstance()
->pipe(new DoubleStage())
->pipe(new IncreaseStage()); $payload = 10;
$payload = SamplePipeline::getInstance()
->process($payload); // return 21 (10 * 2) + 1Perhaps 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);
}
}composer test