cyve/etl

提取-转换-加载服务

3.1.1 2024-08-17 14:17 UTC

This package is auto-updated.

Last update: 2024-09-17 14:25:29 UTC


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';
});