jwhulette/pipes

一个PHP ETL处理库

资助包维护!
jwhulette

v3.01 2023-04-15 17:03 UTC

This package is auto-updated.

Last update: 2024-09-15 21:07:34 UTC


README

Banner

Tests

Packagist PHP Version

Laravel

Packagist Version

Total Downloads

Pipes

Pipes是一个用于Laravel 8+的PHP提取、转换、加载[ETL]包。

安装

composer require jwhulette/pipes

使用

  1. 创建一个新的EtlPipe对象。

  2. 向对象中添加一个提取器以读取输入文件

    • 你可以通过实现ExtractorInterface.php创建自己的提取器
  3. 添加转换器以转换数据

    • 你可以添加任意数量的转换器。

    • 你可以通过实现TransformerInterface.php创建自己的转换器

    • 数据按照定义的顺序传递给转换器

  4. 添加一个加载器以写入转换后的数据。

    • 你可以通过实现LoaderInterface.php创建自己的加载器
(new EtlPipe())
->extract(new CsvExtractor($this->csvFile));
->transforms([
    new CaseTransformer([], 'lower'),
    new TrimTransformer(),
])
->load(new CsvLoader('saved-file.csv'));
注意

内置提取器

  • CsvExtractor
  • XlsxExtractor
  • SqlExtractor

内置加载器

  • CsvLoader
  • SqlLoader

内置转换器

  • CaseTransformer - 更改字符串的大小写
  • DateTimeTransformer - 更改日期字符串的格式
  • PhoneTransformer - 转换美国电话号码,移除所有非数字字符,并限制长度为前10位数字
  • TrimTransformer - 去除字符串两端的空白字符
  • ZipcodeTransformer - 转换美国邮编,移除所有非数字字符,并对少于5位的邮编进行左填充零
  • ConditionalTransformer - 根据另一列的值转换列

数据按照定义的顺序传递给转换器

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTING以获取详细信息。

安全漏洞

请审查我们的安全策略了解如何报告安全漏洞。

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。