cyve / etl
提取-转换-加载服务
3.1.1
2024-08-17 14:17 UTC
Requires
- php: >=8.1
- psr/event-dispatcher: ^1.0
- psr/log: ^1|^2|^3
Requires (Dev)
- phpunit/phpunit: ^10.0
- symfony/var-dumper: ^6.0
README
安装
使用 Composer
composer require cyve/etl
用法
用例:将CSV转换为JSON
$etl = new ETL( new CsvFileExtractor('users.csv'), new NullTransformer(), new JsonFileLoader('users.json') ); $etl->start();
使用事件分发器
使用构造函数的第四个参数来注入 Psr\EventDispatcher\EventDispatcherInterface
的实例。在每次迭代的每个步骤中,如果操作成功,ETL 将分派包含结果的イベント,如果操作失败,则分派异常。
$eventDispatcher = new Symfony\Component\EventDispatcher\EventDispatcher(); $etl = new ETL( $extractor, $transformer, $loader, $eventDispatcher, ); $etl->start();
示例:进度条
$eventDispatcher = new Symfony\Component\EventDispatcher\EventDispatcher();
$eventDispatcher->addListener(LoadSuccessEvent::class, function (LoadSuccessEvent $event): void {
echo '#';
});
$eventDispatcher->addListener(LoadFailureEvent::class, function (LoadFailureEvent $event): void {
echo 'E';
});