Dansoppelsa/洗车

Laravel 应用程序的数据清理器

1.0.1 2020-06-28 22:28 UTC

This package is auto-updated.

Last update: 2024-09-11 21:48:47 UTC


README

洗车 是一个用于 Laravel 应用的数据清理工具

安装

通过 composer 安装

composer require dansoppelsa/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'   
    ]
];

洗车 在内部使用 Faker 包生成替换数据。请参考 Faker 文档以获取完整的 可用格式化器列表

更一般地,洗车 配置文件的格式为

<?php

return [
    '[TABLE_NAME]' => [
        '[COLUMN_NAME]' => '[Faker Formatter][:argument1,argument2]'
    ]
];

3. 运行清理命令

php artisan carwash:scrub

其他

您可以在 洗车 配置文件中将每个字段的值传递为 Faker 格式化器,或者将字段值设置为返回新字段值的可调用对象。这个闭包将接收 Faker 的实例以及正在清理的属性的当前值。

<?php

return [
    'users' => [
        'name' => function ($faker, $currentValue) {
            return "{$faker->firstName} {$faker->lastName}";
        },
        'bio' => new BioFormatter
    ]
];

class BioFormatter
{
    public function __invoke($faker)
    {
        return $faker->sentences(42);
    }
}

可调用对象还可以替换整个表配置,从而完全控制要清理的数据以及如何清理。

<?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)
        ];
    },
];