jwhulette / pipes
一个PHP ETL处理库
v3.01
2023-04-15 17:03 UTC
Requires
- php: ^8.1
- illuminate/database: ^8.0|^9.0|^10.0
- illuminate/support: ^8.0|^9.0|^10.0
- league/pipeline: ^1.0
- nesbot/carbon: ^2.66
- openspout/openspout: ^4.13.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^v3.13.0
- nunomaduro/larastan: ^2.5.1
- nunomaduro/phpinsights: ^2.8
- orchestra/testbench: ^8.4
- phpstan/phpstan: ^1.10.13
- phpunit/phpunit: ^9.6.7
- ramsey/uuid: ^4.7.3
README
Pipes
Pipes是一个用于Laravel 8+的PHP提取、转换、加载[ETL]包。
安装
composer require jwhulette/pipes
使用
-
创建一个新的EtlPipe对象。
-
向对象中添加一个提取器以读取输入文件
- 你可以通过实现ExtractorInterface.php创建自己的提取器
-
添加转换器以转换数据
-
你可以添加任意数量的转换器。
-
你可以通过实现TransformerInterface.php创建自己的转换器
-
数据按照定义的顺序传递给转换器
-
-
添加一个加载器以写入转换后的数据。
- 你可以通过实现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)。请参阅许可证文件以获取更多信息。
