- This is a bridge package for a full integration of
arrilot/data-anonymization
into Laravel framework.
-
composer require arrilot/laravel-data-anonymization
-
Add
database/anonymizatio
n tocomposer.json -> autoload -> classmap
-
php artisan anonymization:install
The package is designed to be as much consistent with Laravel built-in seeders as possible.
php artisan anonymization:install
creates two files:
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
is an entry point into anonymization. It runs other anonymizers.
UserTableAnonymizer
is a useful built-in example. You can modify it and create other anonymizers for other table using generator.
php artisan make:anonymizer ProfileTableAnonymizer
. Similar to make:seeder
Anonymization is performed using php artisan db:anonymize
command.
Its signature is identical with db:seed
command.