flow-php/etl-adapter-csv package is a specialized adapter for CSV-based ETL (Extract, Transform, Load) workflows within the FlowPHP ecosystem. It fits well in architectures where:
Adapter interface, enabling plug-and-play usage in existing workflows.use Flow\Flow;
use FlowPHP\ETLAdapterCSV\Adapter\CsvAdapter;
$flow = new Flow();
$flow->addStep(new CsvAdapter('data.csv', 'r')); // Read mode
Artisan commands to trigger FlowPHP workflows.class CsvEtlService {
protected $adapter;
public function __construct(CsvAdapter $adapter) {
$this->adapter = $adapter;
}
public function process(string $filePath): array {
return $this->adapter->read($filePath);
}
}
handle() method.flow-php/flow (≥v1.0) and league/csv (for CSV parsing).league/csv’s built-in validation or preprocess files.$adapter->setStream(true)).spatie/array-to-csv, maatwebsite/excel) be preferable for simplicity?php-transformer or symfony/serializer.fgetcsv, league/csv).// app/Console/Commands/ProcessCsv.php
use Flow\Flow;
use FlowPHP\ETLAdapterCSV\Adapter\CsvAdapter;
class ProcessCsv extends Command {
public function handle() {
$flow = new Flow();
$flow->addStep(new CsvAdapter('input.csv', 'r'));
$flow->addStep(new TransformStep()); // Custom step
$flow->addStep(new CsvAdapter('output.csv', 'w'));
$flow->run();
}
}
CsvAdapter directly in services).composer.json for exact version).league/csv (≥9.0), which supports PHP 8.0+.;) require configuration:
$adapter = new CsvAdapter('data.csv', 'r');
$adapter->setDelimiter(';');
composer require flow-php/flow flow-php/etl-adapter-csv league/csv
composer.json to avoid breaking changes.README (if available).How can I help you explore Laravel packages today?