atabix / laravel-data-anonymization
Laravel bridge for arrilot/data-anonymization
Installs: 29 530
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 9
pkg:composer/atabix/laravel-data-anonymization
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-anonymizationinto Laravel framework.
Installation
-
composer require atabix/laravel-data-anonymization -
Add
database/anonymization 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.