swisnl/carwash

Laravel应用的数据清洗器

0.1.2 2023-03-24 09:39 UTC

This package is auto-updated.

Last update: 2024-08-24 12:45:07 UTC


README

Latest Version on Packagist Software License Build Status

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)。有关更多信息,请参阅许可文件