atabix / laravel-data-anonymization
Laravel bridge for 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 Data Anonymization
- This is a bridge package for a full integration of
arrilot/data-anonymization
into Laravel framework.
Installation
-
composer require atabix/laravel-data-anonymization
-
Add
database/anonymizatio
n tocomposer.json -> autoload -> classmap
-
php artisan anonymization:install
Usage
The package is designed to be as much consistent with Laravel built-in seeders as possible.
Bootstrapping
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.
Generator command
php artisan make:anonymizer ProfileTableAnonymizer
. Similar to make:seeder
Running the anonymization
Anonymization is performed using php artisan db:anonymize
command.
Its signature is identical with db:seed
command.