arrilot / laravel-data-anonymization
Laravel bridge for arrilot/data-anonymization
Installs: 396 084
Dependents: 0
Suggesters: 0
Security: 0
Stars: 35
Watchers: 6
Forks: 8
Open Issues: 3
Requires
- php: >=5.5.9
- arrilot/data-anonymization: ~1.0
- illuminate/console: >=8.0
- illuminate/contracts: >=8.0
- illuminate/support: >=8.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.0
README
Laravel Data Anonymization
- This is a bridge package for a full integration of arrilot/data-anonymization into Laravel framework.
Installation
-
composer require arrilot/laravel-data-anonymization
-
Add
"Database\\Anonymization\\": "database/anonymization/",
tocomposer.json -> autoload -> psr-4
-
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 namespace Database\Anonymization; 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 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
is an entry point into anonymization. It runs other anonymizers.
UsersAnonymizer
is a useful built-in example. You can modify it and create other anonymizers for other tables using generator.
Generator command
php artisan make:anonymizer AccountsAnonymizer
. Similar to make:seeder
Running the anonymization
Anonymization is performed using php artisan db:anonymize
command.
Its signature is identical with db:seed
command.