arrilot / laravel-data-anonymization by Arrilot

Laravel bridge for arrilot/data-anonymization
326,315
32
6
Package Data
Maintainer Username: Arrilot
Maintainer Contact: nekrasov.ilya90@gmail.com (Nekrasov Ilya)
Package Create Date: 2015-11-21
Package Last Update: 2023-05-23
Language: PHP
License: MIT
Last Refreshed: 2024-04-22 15:02:17
Package Statistics
Total Downloads: 326,315
Monthly Downloads: 10,431
Daily Downloads: 213
Total Stars: 32
Total Watchers: 6
Total Forks: 8
Total Open Issues: 3

Latest Stable Version Total Downloads Scrutinizer Quality Score

Laravel Data Anonymization

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

Installation

  1. composer require arrilot/laravel-data-anonymization

  2. Add Arrilot\LaravelDataAnonymization\ServiceProvider::class to your config/app.php

  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.