Add a new Executor step category alongside Extractor, Transformer and Loader.
ExecutorStep — interface extending ExecutableStep, exposes execute(string $command, array $arguments, Context $context, array $configuration): mixedAbstractExecutorStep — base class resolving command and arguments from the Context configuration, with fallback to the step's default configurationConsoleCommandExecutorStep — built-in implementation running a Symfony console command via Application::run(), returns array{ exitCode: int, output: string }ConsoleCommandExecutorStep (etl.executor.console_command)| Key | Description |
|---|---|
command |
Symfony console command name (e.g. app:my-command) |
arguments |
Associative array of arguments and options |
catchExceptions |
Whether to catch exceptions (default: false) |
symfony/console ^6.4\|\|^7.0 added as require-devFirst stable release of ETLCoreBundle — a reusable Symfony Bundle providing a configurable ETL (Extract / Transform / Load) pipeline engine.
Core
Context DTO — the central pass-through object between stepsAbstractExtractorStep, AbstractTransformerStep, AbstractLoaderStep)PipelineStatus enum and pipeline lifecycle managementBuilt-in ETL steps
| Step | Type |
|---|---|
CsvFileExtractStep |
Extractor |
JsonFileExtractStep |
Extractor |
XmlFileExtractStep |
Extractor |
FilterTransformStep |
Transformer |
DataMappingTransformStep |
Transformer |
CsvFileLoadStep |
Loader |
JsonFileLoadStep |
Loader |
DatabaseLoadStep |
Loader |
Execution engine
DefaultPipelineRunner with middleware chains (pipeline-level & step-level)CycleLife middlewares for pipeline & step lifecycle trackingpipeline_lifecycle state machine)PipelineScheduler with #[AsCronTask])CQS layer
CommandBus / QueryBus interfaces backed by Symfony MessengerAsyncCommand / AsyncQuery for opt-in async transportcommand.bus, query.bus, event.bus>= 8.2^6.4 || ^7.0composer require boutdecode/etl-core-bundle
How can I help you explore Laravel packages today?