descom/pipeline

用于注入插件的 pipeline

2.3.0 2024-04-18 14:49 UTC

This package is auto-updated.

Last update: 2024-09-18 15:49:46 UTC


README

tests analyze styles

安装

通过 Composer

composer require descom/pipeline

用法

创建阶段

示例

创建 Pipeline

use Descom\Pipeline\PipeLine;

class SamplePipeline extends PipeLine
{}

配置插件以添加阶段

    SamplePipeline::getInstance()
        ->pipe(new DoubleStage())
        ->pipe(new IncreaseStage());

处理 pipeline 以转换核心中的数据

    $payload = 10;

    $payload = SamplePipeline::getInstance()
        ->process($payload); // return 21 (10 * 2) + 1

选项

也许您需要向阶段添加选项,例如,将值加倍次数。您可以通过调用 with 方法向阶段添加选项。

    $payload = 10;

    $payload = SamplePipeline::getInstance()
        ->process($payload, [
            'twiceDouble' => 3,
            'twiceIncrease' => 2
        ]); // return 82 (10 * 2 ^ 3) + (1 + 1)

您可以定义 DoubleStage 如下

class DoubleStage extends Stage
{
    public function handle($payload): int
    {
        $twiceDouble = $this->option('twiceDouble') ?? 1;

        return $payload * pow(2, $twiceDouble);
    }
}

测试

composer test