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
Requires
- php: >=8.2
- league/pipeline: ^1.0
- symfony/config: ^5.0|^6.0|^7.0
- symfony/dependency-injection: ^5.0|^6.0|^7.0
- symfony/http-kernel: ^5.0|^6.0|^7.0
Requires (Dev)
- phpstan/extension-installer: ^1.2
- phpstan/phpstan: ^2.0
- phpstan/phpstan-symfony: ^2.0
- phpunit/phpunit: ^10.1
- rector/rector: ^2.0
- squizlabs/php_codesniffer: ~3.11.0
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 phpcsto check PHP related files against the PSR-12 code stylecomposer rectorto automatically comply with coding standards, simplify and improve code, and perform migrations (rules defined in./rector.php)composer phpstanfor 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