gandung/pipeline 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

gandung/pipeline

Composer 安装命令:

composer require gandung/pipeline

包简介

A PHP package to invoke parallel closure or invokable class instance

README 文档

README

Build status SensioLabsInsight

This library provides ability to run callbacks/closure/invokable instance in parallel.

Table Of Content

Quick Start

Pipe several tasks and immediately run it in parallel.

use Gandung\Pipeline\Pipeline;

// Closure based task.
$pipe = (new Pipeline)
	->pipe(function($q) { return $q; })
	->pipe(function($q) { return join(' ', [$q, 'bar']); })
	->pipe(function($q) { return join(' ', [$q, 'baz']); });
$payload = $pipe->invokeAll('foo');

echo sprintf("%s\n", $payload);

This will print 'foo bar baz'. This equals to $task3($task2($task1('foo'))).

use Gandung\Pipeline\Pipeline;
use Gandung\Pipeline\Tests\Fixtures\FooTask;
use Gandung\Pipeline\Tests\Fixtures\BarTask;
use Gandung\Pipeline\Tests\Fixtures\BazTask;

// Instance based task. Class instance must implements __invoke and TaskInterface class interface.
$pipe = (new Pipeline)
	->pipe(new FooTask)
	->pipe(new BarTask)
	->pipe(new BazTask);
$payload = $pipe->invokeAll('foo');

echo sprintf("%s\n", $payload);

This will print the same result as above.

Build tasks first, then run.

use Gandung\Pipeline\PipelineBuilder;

// Closure based task.
$builder = (new PipelineBuilder)
	->add(function($q) { return $q; })
	->add(function($q) { return join(' ', [$q, 'bar']); })
	->add(function($q) { return join(' ', [$q, 'baz']); });
$pipe = $builder->build();
$payload = $pipe->invokeAll('foo');

echo sprintf("%s\n", $payload);
use Gandung\Pipeline\PipelineBuilder;
use Gandung\Pipeline\Tests\Fixtures\FooTask;
use Gandung\Pipeline\Tests\Fixtures\BarTask;
use Gandung\Pipeline\Tests\Fixtures\BazTask;

// Instance based task. Class instance must implements __invoke and TaskInterface class interface.
$builder = (new PipelineBuilder)
	->add(new FooTask)
	->add(new BarTask)
	->add(new BazTask);
$pipe = $builder->build();
$payload = $pipe->invokeAll('foo');

echo sprintf("%s\n", $payload);

API

Pipeline

__construct($tasks = [], ProcessorInterface $processor = null)

Parameter

  • $tasks The tasks, can be list of closure/class instance, defaulting to empty array
  • \Gandung\Pipeline\ProcessorInterface $processor The class instance which implements ProcessorInterface, defaulting to null

Return Value

None

pipe($task)

Parameter

  • $task The task, can be closure/class instance

Return Value

An immutable copy of \Gandung\Pipeline\Pipeline

invokeAll($param)

Parameter

  • $param Task parameter

Return Value

Mixed

PipelineBuilder

add($task)

Parameter

  • $task The task, can be closure/class instance

Return Value

An immutable copy of Gandung\Pipeline\PipelineBuilder

build(ProcessorInterface $processor = null)

Parameter

  • \Gandung\Pipeline\ProcessorInterface $processor The class instance which implements ProcessorInterface, defaulting to null

Return Value

An instance of \Gandung\Pipeline\Pipeline

Processor

invoke($tasks, $param)

Parameter

  • $tasks The tasks, can be list of closure/class instance
  • $param Task parameter

Return Value

Mixed

resume()

Parameter

None

Return Value

None

freeze()

Parameter

None

Return Value

None

interrupt()

Parameter

None

Return Value

None

pause()

Parameter

None

Return Value

None

getState()

Parameter

None

Return Value

Current task state.

InterruptibleProcessor

__construct($routine)

Parameter

  • $routine Cancellation routine, must return true or false

Return Value

None

invoke($tasks, $param)

Parameter

  • $tasks The tasks, can be list of closure/class instance
  • $param Task parameter

Return Value

Mixed

resume()

Parameter

None

Return Value

None

freeze()

Parameter

None

Return Value

None

interrupt()

Parameter

None

Return Value

None

pause()

Parameter

None

Return Value

None

getState()

Parameter

None

Return Value

Current task state.

IntermitProcessor

__construct($routine = null)

Parameter

  • $routine Cancellation routine, must return true or false, defaulting to null

Return Value

None

invoke($tasks, $param)

Parameter

  • $tasks The tasks, can be list of closure/class instance
  • $param Task parameter

Return Value

Mixed

resume()

Parameter

None

Return Value

None

pause()

Parameter

None

Return Value

None

interrupt()

Parameter

None

Return Value

None

freeze()

Parameter

None

Return Value

None

getState()

Parameter

None

Return Value

Current task state.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2017-10-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固