webcraftdg / data-pipeline
Framework-agnostic PHP data pipeline engine for reading, mapping, transforming, processing and writing structured data.
1.1.0
2026-04-14 13:08 UTC
Requires
- php: ^8.3
- phpoffice/phpspreadsheet: ^5.3
Requires (Dev)
Suggests
- psr/log: Allows integration with a PSR-3 compatible logger.
This package is not auto-updated.
Last update: 2026-04-14 13:10:41 UTC
README
Moteur générique de transformation de données en PHP.
OBJECTIF
Ce composant permet de transformer des données d'un format à un autre de manière propre, réutilisable et maintenable.
Exemples :
- CSV → Base de données
- Base de données → Excel
- JSON → XML
- Array → JSON
CONCEPT
Le système repose sur un flux :
Source → Pipeline → Target
Il n'y a pas de notion technique d'import/export, seulement un flux de données.
FONCTIONNEMENT
Le pipeline suit ces étapes :
Input → Mapping → Transformers → Processor → Output
- Input : lit les données
- Mapping : renomme les colonnes
- Transformers : transforme les valeurs
- Processor : applique la logique métier
- Output : écrit les données
EXEMPLE COMPLET
$config = new PipelineConfig( name: 'users', version: 1, stopOnError: true, source: new SourceConfig('input', 'array', [ 'data' => [ ['id' => 1, 'name' => 'david', 'email' => 'test@mail.com'], ['id' => 2, 'name' => 'jean', 'email' => ''] ] ]), target: new TargetConfig('output', 'json', [ 'path' => 'output.json' ]), columns: [ new ColumnMapping('id', 'ID'), new ColumnMapping('name', 'Name', [ new TransformerConfig('upper') ]) ], processor: new ProcessorConfig('validate-email') ); $runtime = $runtimeFactory->create($config); $report = $executor->run($config, $runtime);
