clntdev/scrubber-laravel

一个用于从数据库中定义字段中清除数据的Laravel包

1.0.4 2024-03-13 20:22 UTC

This package is auto-updated.

Last update: 2024-09-13 21:22:45 UTC


README

Stable Build CI Status

Scrubber(Laravel包装器)是一个简单的Laravel包装器,它围绕名为Scrubber的简单PHP包添加了一个Facade和一些有用的Artisan命令,这允许你定义一个PHP配置文件,这可以帮助使用预定义的或随机值更新数据库字段。

当您需要一份用于工作的生产数据库副本并需要擦除敏感内容时,这非常理想。

安装

通过运行以下命令通过composer安装: composer require clntdev/scrubber-laravel

通过运行以下命令将包配置发布到config/scrubber.phpphp artisan vendor:publish --tag=scrubber

使用方法

该包依赖于一个有效的PHP配置文件才能正确运行,该文件返回一个简单的数组,该数组映射了表、字段及其详细信息,这样它就知道要使用哪个处理器。

如果使用默认位置,在Laravel项目的根目录中创建一个scrubber.php文件。如果使用其他位置,请在config/scrubber.php文件中设置绝对路径。

  • 如果需要使用不同的列来获取数据库记录,可以在字段上定义primary_key,默认为id
  • 如果希望覆盖检测到的处理器,可以在字段上定义handler
  • 可以在字段上定义type,这可以用来定义字段为特定的数据类型,例如用于GDPR的pid(这在下面列出的方法中很有用)。

以下是单元测试中使用的示例配置

<?php

use ClntDev\Scrubber\Handlers\FakerHandler;

return [
    'users' => [
        'first_name' => [
            'primary_key' => 'id',
            'value' => 'faker.firstName',
            'type' => 'pid',
        ],
        'last_name' => [
            'value' => 'faker.lastName',
            'type' => 'pid',
        ],
        'email' => [
            'value' => 'faker.email',
            'handler' => FakerHandler::class,
            'type' => 'pid',
        ],
        'toggle' => [
            'value' => static fn (): bool => true,
        ],
    ],
];

Facade

可以通过ClntDev\LaravelScrubber\Facades\Scrubber类访问Scrubber包的方法。

此包装器使用DB facade来执行任何数据库更新,并使用Illuminate\Log\Logger来记录任何错误消息。这些绑定到基础包文档中详细说明的契约,文档可在此处找到。

方法

Scrubber::run() - 这是主方法,将从解析的配置文件中运行所有处理器,以修改数据库。

Scrubber::getFieldList(string $type = 'pid') - 此方法将返回给定类型的字段数组,默认为pid

Scrubber::getFieldListAsString(string $type = 'pid') - 此方法将返回给定类型的逗号分隔字符串,默认为pid

命令

scrubber:run - 此命令将在数据库上运行run() scrubber方法。

scrubber:fields --type=pid - 此命令将返回给定类型的逗号分隔字符串,如果没有指定type参数,则默认为pid