arrilot/laravel-data-anonymization

Laravel 与 arrilot/data-anonymization 的桥梁

2.0.0 2020-10-11 19:12 UTC

This package is auto-updated.

Last update: 2024-09-08 17:12:21 UTC


README

Latest Stable Version Total Downloads Scrutinizer Quality Score

Laravel 数据匿名化

安装

  1. composer require arrilot/laravel-data-anonymization

  2. "Database\\Anonymization\\": "database/anonymization/", 添加到 composer.json -> autoload -> psr-4

  3. php artisan anonymization:install

使用方法

该包旨在尽可能与 Laravel 内置的种子文件保持一致。

引导

php artisan anonymization:install 创建两个文件

  1. database/anonymization/DatabaseAnonymizer.php
<?php

namespace Database\Anonymization;

use Arrilot\LaravelDataAnonymization\AbstractAnonymizer;

class DatabaseAnonymizer extends AbstractAnonymizer
{
    /**
     * Run the database anonymization.
     *
     * @return void
     */
    public function run()
    {
        $this->call(UserTableAnonymizer::class);
    }
}
  1. database/anonymization/UserTableAnonymizer.php
<?php

namespace Database\Anonymization;

use Arrilot\DataAnonymization\Blueprint;
use Arrilot\LaravelDataAnonymization\AbstractAnonymizer;
use Faker\Generator as Faker;

class UsersAnonymizer extends AbstractAnonymizer
{
    /**
     * Run the database anonymization.
     *
     * @return void
     */
    public function run()
    {
        // For more info about this part read here https://github.com/arrilot/data-anonymization
        $this->table('users', function (Blueprint $table) {

            $table->column('email')->replaceWith(function(Faker $faker) {
                return $faker->unique()->email;
            });

            $table->column('name')->replaceWith('John Doe');
        });
    }
}

DatabaseAnonymizer 是匿名化的入口点。它运行其他匿名化程序。UsersAnonymizer 是一个有用的内置示例。您可以修改它并使用生成器创建其他用于其他表的匿名化程序。

生成器命令

php artisan make:anonymizer AccountsAnonymizer。类似于 make:seeder

运行匿名化

使用 php artisan db:anonymize 命令执行匿名化。它的签名与 db:seed 命令相同。