moirei/pipeline

简单的 Laravel 管道库。

0.2.0 2022-12-17 03:06 UTC

This package is auto-updated.

Last update: 2024-09-23 09:24:45 UTC


README

在众多管道包中,包括 Laravel 自家的包 illuminate/pipeline,你可能需要一个更适合复杂操作的解决方案。

此包旨在进行数据处理,不应替代操作或任务。这里的管道概念是一系列按照顺序发生的微任务集合,以从单一输入生成单一输出。

文档

所有文档均可在 文档网站 找到。

功能

  • 实用操作符
  • 管道上下文
  • 使用闭包、处理器类或上下文方法

示例

如果你习惯了 RxJs,你可能会欣赏下面的示例。实际上,管道可以做任何事情。

$value = Pipeline::with(0)->pipe([
    Pipeline::switch([
        fn ($v) => $v + 1,
        fn ($v) => $v + 2,
        fn ($v) => $v + 3,
    ]),
    Pipeline::map(
        fn ($v) => $v * 2,
    ),
    Pipeline::tap(function (array $value) {
        // do whatever
    }),
]);

// returns [2, 4, 6]

查看 原理 了解更令人兴奋的示例。

安装

composer require moirei/pipeline

测试

composer test

鸣谢