netresearch/pipeline-factory

This Symfony bundle allows dynamically creating pipelines through dependency injection via league/pipeline

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 4

Forks: 0

Open Issues: 1

Type:symfony-bundle

pkg:composer/netresearch/pipeline-factory

1.0.0 2025-10-29 15:23 UTC

This package is auto-updated.

Last update: 2025-11-03 10:02:12 UTC


README

This bundle enables you to create league/pipeline pipelines via service configuration.

Requirements

  • PHP 8.2 or higher
  • Symfony 5.x, 6.x, or 7.x
  • league/pipeline ^1.0

Installation

$ composer require netresearch/pipeline-factory

If you do not use Symfony Flex, you need to enable the bundle manually:

// config/bundles.php
return [
    // ...
    Netresearch\PipelineFactoryBundle\NetresearchPipelineFactoryBundle::class => ['all' => true],
];

Usage

Use the pipeline factory via your service container configuration:

# config/services.yaml
services:
    app.my.custom.pipeline:
        factory: [ 'Netresearch\PipelineFactoryBundle\Pipeline\Factory', create ]
        class: League\Pipeline\Pipeline
        arguments:
            $stages: !iterator [
                '@App\Pipeline\Stages\Stage1',
                '@App\Pipeline\Stages\Stage2',
                '@App\Pipeline\Stages\Stage3',
            ]
            # optional: set the pipeline processor
            $processor: '@App\Pipeline\Processor\MyCustomProcessor'

Alternatively you can pass in a collection of tagged services (e.g. tag them via autoconfiguration):

# config/services.yaml
services:
    App\Pipeline\Stages\:
        resource: '../src/Pipeline/Stages'
        tags: [ 'app.my.custom.pipeline.stage' ]

    app.my.custom.pipeline:
        factory: [ 'Netresearch\PipelineFactoryBundle\Pipeline\Factory', create ]
        class: League\Pipeline\Pipeline
        arguments:
            $stages: !tagged_iterator 'app.my.custom.pipeline.stage'

Via priority, you can control the order of the stages in this case.

Development

Testing

Run the test suite:

$ composer test

Generate code coverage report:

$ composer test-coverage

The coverage report will be available in the coverage/ directory. Open coverage/index.html in your browser to view detailed coverage information.

Code Style and Static Analysis

Use the following commands to ensure the source code conforms to our coding standards and guidelines:

  • composer phpcs to check PHP related files against the PSR-12 code style
  • composer rector to automatically comply with coding standards, simplify and improve code, and perform migrations (rules defined in ./rector.php)
  • composer phpstan for type and bug checking

Run the command composer analysis to run all static analysis checks at once.

Run all quality checks (analysis + tests):

$ composer quality