swisnl / carwash
0.1.2
2023-03-24 09:39 UTC
Requires
- laravel/framework: ^6.0|^7.0|^8.0|^9.0|^10.0
Requires (Dev)
- fakerphp/faker: ^1.9.1
- orchestra/testbench: ^4.0|^5.0|^6.0|^7.0|^8.0
- phpunit/phpunit: ^8.5|^9.5
README
Carwash是Laravel应用的数据清洗工具
安装
通过composer安装
composer require swisnl/carwash
用法
1. 发布默认配置文件
php artisan vendor:publish
2. 在config/carwash.php
中编辑配置文件以适应您的应用
<?php return [ 'users' => [ 'first_name' => 'firstName', 'last_name' => 'lastName', 'email' => 'safeEmail' ], 'addresses' => [ 'street' => 'streetAddress', 'city' => 'city', 'zip' => 'postcode' ], 'bios' => [ 'content' => 'sentences:2' ] ];
Carwash在内部使用令人惊叹的Faker包来生成替换数据。请参阅Faker文档以获取可用格式化程序的完整列表。
更一般地,Carwash配置文件的格式是
<?php return [ '[TABLE_NAME]' => [ '[COLUMN_NAME]' => '[Faker Formatter][:argument1,argument2]' ] ];
3. 运行清洗命令
php artisan carwash:scrub
其他
除了将Faker格式化程序作为值传递给Carwash
配置文件中的每个字段外,还可以将字段值设置为Callable,该Callable返回新的字段值。此闭包将接收到一个Faker实例和正在被清洗的属性当前值。
<?php return [ 'users' => [ 'name' => function ($faker, $currentValue) { return "{$faker->firstName} {$faker->lastName}"; }, 'bio' => BioFormatter::class ] ]; class BioFormatter { public function __invoke($faker) { return $faker->sentences(42); } }
Callable还可以替换整个表配置,从而完全控制要清洗的数据及其方式。
<?php return [ 'users' => function ($faker, $user) { $firstName = $faker->firstName; $lastName = $faker->lastName; return [ 'first_name' => $firstName, 'last_name' => $lastName, 'email' => $firstName . "." . $lastName. "@" . $faker->safeEmailDomain, 'phone' => substr($user['phone'], 0, 3) . "-555-" . $faker->randomNumber(4) ]; }, ];
测试
$ composer test
安全
如果您发现任何与安全相关的问题,请通过security@swis.nl发送电子邮件,而不是使用问题跟踪器。
鸣谢
此包是基于dansoppelsa/carwash的分支,并更新了Laravel支持。
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。