2017 © Pedro Peláez
 

library php-pipeline

This package provides a pipeline pattern implementation.

image

imunew/php-pipeline

This package provides a pipeline pattern implementation.

  • Tuesday, September 26, 2017
  • by imunew
  • Repository
  • 0 Watchers
  • 3 Stars
  • 1,047 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 71 % Grown

The README.md

php-pipeline

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

Quality Assurance, (*2)

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., (*3)

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

The Versions

26/09 2017

dev-master

9999999-dev

This package provides a pipeline pattern implementation.

  Sources   Download

MIT

The Requires

  • php ^5.6 || ^7.0

 

The Development Requires

by Avatar imunew

26/09 2017

v0.2.0

0.2.0.0

This package provides a pipeline pattern implementation.

  Sources   Download

MIT

The Requires

  • php ^5.6 || ^7.0

 

The Development Requires

by Avatar imunew

10/09 2017

v0.1.0

0.1.0.0

This package provides a pipeline pattern implementation.

  Sources   Download

MIT

The Requires

  • php ^5.6 || ^7.0

 

The Development Requires

by Avatar imunew