atabix / laravel-data-anonymization
Laravel 与 arrilot/data-anonymization 的桥接包
2.0.1
2020-04-02 12:49 UTC
Requires
- php: ^7.0
- arrilot/data-anonymization: ~1.0
- illuminate/console: 5.*|6.*|7.*
- illuminate/contracts: 5.*|6.*|7.*
- illuminate/support: 5.*|6.*|7.*
- mockery/mockery: ^1.3
- phpunit/phpunit: ^9.0
README
Laravel 数据匿名化
- 这是一个桥接包,用于将
arrilot/data-anonymization
完全集成到 Laravel 框架中。
安装
-
composer require atabix/laravel-data-anonymization
-
将
database/anonymization
添加到composer.json -> autoload -> classmap
-
php artisan anonymization:install
使用方法
该包旨在尽可能与 Laravel 内置的种子文件保持一致。
初始化
php artisan anonymization:install
会创建两个文件
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); } }
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
命令相同。