atabix/laravel-data-anonymization

Laravel 与 arrilot/data-anonymization 的桥接包

2.0.1 2020-04-02 12:49 UTC

This package is auto-updated.

Last update: 2024-09-14 15:52:57 UTC


README

CircleCI

Laravel 数据匿名化

  • 这是一个桥接包,用于将 arrilot/data-anonymization 完全集成到 Laravel 框架中。

安装

  1. composer require atabix/laravel-data-anonymization

  2. database/anonymization 添加到 composer.json -> autoload -> classmap

  3. php artisan anonymization:install

使用方法

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

初始化

php artisan anonymization:install 会创建两个文件

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

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

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

class UserTableAnonymizer 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 是进入匿名化的入口点。它运行其他匿名化器。UserTableAnonymizer 是一个有用的内置示例。您可以修改它并使用生成器创建其他表的匿名化器。

生成器命令

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

运行匿名化

使用 php artisan db:anonymize 命令进行匿名化。其签名与 db:seed 命令相同。