定制 imunew/php-pipeline 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

imunew/php-pipeline

最新稳定版本:v0.3.0

Composer 安装命令:

composer require imunew/php-pipeline

包简介

This package provides a pipeline pattern implementation.

README 文档

README

This package provides a pipeline of callable functions or classes that have __invoke().
This package was inspired strongly by the League\Pipeline.

Quality Assurance

Why do not use the League\Pipeline?

The League\Pipeline is provides only add to pipeline.
I want to insert or replace callable to pipeline.

Install via composer

$ composer require imunew/php-pipeline

Basic usage

$pipes = (new Pipes())
    ->add(10, function($context) {
        /** @var ContextInterface $context */
        $data = $context->getData('number', 0);         // 1) $data = 0
        return $context->setData('number', $data + 1);  // 2) $data = 1
    })
    ->add(20, function($context) {
        /** @var ContextInterface $context */
        $data = $context->getData('number', 0);         // 2) $data = 1
        return $context->setData('number', $data * 10); // 3) $data = 10
    })
;

$pipeline = new Pipeline($pipes);
$context = $pipeline->process(new Context());

echo $context->getData('number'); // 10

Insert pipe

$pipes = (new Pipes())
    ->add(10, function($context) {
        /** @var ContextInterface $context */
        $data = $context->getData('number', 0);         // 1) $data = 0
        return $context->setData('number', $data + 1);  // 2) $data = 1
    })
    ->add(20, function($context) {
        /** @var ContextInterface $context */
        $data = $context->getData('number', 0);         // 3) $data = 3
        return $context->setData('number', $data * 10); // 4) $data = 30
    })
;

// Insert pipe between 10 and 20.
$pipes = $pipes->add(15, function($context) {
    /** @var ContextInterface $context */
    $data = $context->getData('number', 0);            // 2) $data = 1
    return $context->setData('number', $data + 2);     // 3) $data = 3
});

$pipeline = new Pipeline($pipes);
$context = $pipeline->process(new Context());

echo $context->getData('number'); // 30

统计信息

  • 总下载量: 6.58k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-09-10