LaravelPackages.net
Acme Inc.
Toggle sidebar
arrilot/laravel-data-anonymization

Laravel bridge for arrilot/data-anonymization

581.339
38
2.0.0
About arrilot/laravel-data-anonymization

arrilot/laravel-data-anonymization is a Laravel package for laravel bridge for arrilot/data-anonymization. It currently has 38 GitHub stars and 581.339 downloads on Packagist (latest version 2.0.0). Install it with composer require arrilot/laravel-data-anonymization. Discover more Laravel packages by arrilot or browse all Laravel packages to compare alternatives.

Last updated

Latest Stable Version Total Downloads Scrutinizer Quality Score

Laravel Data Anonymization

Installation

  1. composer require arrilot/laravel-data-anonymization

  2. Add "Database\\Anonymization\\": "database/anonymization/", to composer.json -> autoload -> psr-4

  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

namespace Database\Anonymization;

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

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.

Comments