atabix/laravel-data-anonymization

Laravel bridge for arrilot/data-anonymization

2.0.1 2020-04-02 12:49 UTC

This package is auto-updated.

Last update: 2024-05-14 15:13:29 UTC


README

CircleCI

Laravel Data Anonymization

  • This is a bridge package for a full integration of arrilot/data-anonymization into Laravel framework.

Installation

  1. composer require atabix/laravel-data-anonymization

  2. Add database/anonymization to composer.json -> autoload -> classmap

  3. 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:

  1. 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);
    }
}
  1. 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.