clavius/forkpipes

Forkpipes 设计模式支持 PHP 库

v0.9 2024-02-28 12:51 UTC

This package is not auto-updated.

Last update: 2024-09-26 14:04:28 UTC


README

此软件包的作用

  • 该库旨在支持我所提出的 forkpipes 设计模式
  • 版本 1.0

当需要将数据处理分成几个流,在后续的处理步骤再将它们分成更多流,具有任意嵌套,然后组合这些数据流时,使用此模式。您可以根据任意分组方式或 - 简单地 - 根据初始划分来组合它们。

安装

  • 安装包:composer require clavius/forkpipes
  • 配置:无需配置
  • 依赖项:开发和测试 - phpunit, faker
  • 数据库 - 不需要
  • 测试:php.exe vendor/phpunit/phpunit/phpunit --no-configuration tests

使用

  • 编写具有数据处理函数的类 - 转换器
    • 每个转换器都实现了 PipeConverter 接口
    • 接受和返回数组格式的数据
    • 数组元素可以是任何类型
  • 创建一个继承自 Clavius\Pipes\Exec\Pipeline 的类,并在其中组装处理转换器的管道
    • 该类必须实现 addConverters 方法
    • 方法中定义了管道步骤
    • 步骤可以是转换器、组合器或过滤器
    • 组合器简单地组合之前步骤收集的数据,过滤器选择部分数据供下一步使用
    • 创建管道的示例 - \Clavius\Pipes\Pipelines\TextDullPipeline
  • 创建一个用于中间存储处理结果的存储库,该存储库将由管道类使用
  • 创建管道类对象(带有存储库)并使用此对象调用 addConverters 和 do 方法
  • 请参阅 \Clavius\Pipes\Tests\PipesTest 测试中的示例

联系方式

  • 项目负责人是 Sergey Pavlov(clavius@gmail.com )