Download the PHP package olexin-pro/data-processing-pipeline without Composer
On this page you can find all versions of the php package olexin-pro/data-processing-pipeline. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download olexin-pro/data-processing-pipeline
More information about olexin-pro/data-processing-pipeline
Files in olexin-pro/data-processing-pipeline
Package data-processing-pipeline
Short Description A robust, strictly-typed, and extensible data processing pipeline system for Laravel applications. Process data through a chain of isolated steps with built-in conflict resolution, priority handling, and optional execution history tracking.
License MIT
Informations about the package data-processing-pipeline
๐งญ Data Processing Pipeline for Laravel
A robust, strictly-typed, and extensible data processing pipeline system for Laravel applications. Process data through a chain of isolated steps with built-in conflict resolution, priority handling, and optional execution history tracking.
โจ Features
- ๐ Strictly Typed - Full PHP 8.1+ type safety with enums and interfaces
- ๐ Immutable Payload - Original data never changes during processing
- ๐ฏ Conflict Resolution - Built-in strategies: MERGE, OVERWRITE, SKIP, CUSTOM
- ๐ Priority System - Control data precedence in merge operations
- ๐ Execution History - Optional database tracking of pipeline runs
- ๐ Queue-Safe - Fully serializable for Laravel queues
- ๐งฉ Extensible - Easy to add custom steps and conflict resolvers
- ๐งช Well Tested - Comprehensive test coverage
๐ฆ Installation
Publish Migrations
This creates two tables:
pipeline_runs- Stores pipeline execution recordspipeline_steps- Stores individual step execution details
๐ Quick Start
1. Create a Pipeline Step
2. Run the Pipeline
3. Queue Execution
๐ Core Concepts
Pipeline Context
The context is an immutable container that holds:
- Payload (readonly) - Original input data
- Results - Accumulated step outputs
- Meta - Arbitrary metadata (errors, timestamps, etc.)
Pipeline Results
Every step returns a PipelineResultInterface:
Conflict Policies
When multiple steps write to the same key:
MERGE (default)
Recursively merges arrays, respecting priorities:
OVERWRITE
Replaces previous value completely:
SKIP
Keeps the first result, ignores the rest:
CUSTOM
Define a custom resolver:
๐ง Advanced Usage
Priority System
Higher priority overrides lower ones in merges:
Execution History
Enable automatic logging:
Error Handling
Pipeline continues on failure:
Dynamic Steps
Add steps at runtime:
Conditional Steps
Steps can self-skip:
๐ฏ Real-World Example
๐ Step Generator
Create pipeline steps with a single command. By default, classes are placed under App\Pipeline\Steps and saved to app/Pipeline/Steps.
`
Nested directories
Options
--policy=โ conflict policy (MERGE|OVERWRITE|SKIP|CUSTOM). Default:MERGE.--priority=โ result priority (int). Default:10.--key=โ result key (defaults to the snake_case of the class name without theStepsuffix, e.g.,EmailFormatterStepโemail_formatter).--forceโ overwrite the file if it already exists.
Examples:
Customizing the stub
๐งช Testing
๐ API Reference
PipelineContext
GenericPipelineResult
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
๐ License
This package is open-sourced software licensed under the MIT license.
๐ Credits
๐ง Support
For support, please open an issue on GitHub
Made with โค๏ธ for the Laravel community
All versions of data-processing-pipeline with dependencies
illuminate/support Version ^10.0 || ^11.0 || ^12.0
illuminate/contracts Version ^10.0 || ^11.0 || ^12.0
illuminate/collections Version ^10.0 || ^11.0 || ^12.0
illuminate/database Version ^10.0 || ^11.0 || ^12.0