Skip to content
/ carwash Public
forked from dansoppelsa/carwash

Data scrubber for Laravel applications

License

Notifications You must be signed in to change notification settings

swisnl/carwash

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Carwash

Latest Version on Packagist Software License Build Status

Carwash is a data scrubbing utility for Laravel applications

Installation

Install via composer

composer require swisnl/carwash

Usage

1. Publish default config file

php artisan vendor:publish

2. Edit config file at config/carwash.php for your application

<?php

return [
    'users' => [
        'first_name' => 'firstName',
        'last_name' => 'lastName',
        'email' => 'safeEmail'
    ],
    'addresses' => [
        'street' => 'streetAddress',
        'city' => 'city',
        'zip' => 'postcode'
    ],
   'bios' => [
        'content' => 'sentences:2'   
    ]
];

Carwash uses the fabulous Faker package under the hood to generate replacement data. Please refer to the Faker documentation for a complete list of available formatters.

More generally, the format of the Carwash config file is:

<?php

return [
    '[TABLE_NAME]' => [
        '[COLUMN_NAME]' => '[Faker Formatter][:argument1,argument2]'
    ]
];

3. Run Scrub Command

php artisan carwash:scrub

Other

Instead of passing a Faker Formatter as the value for each field in your Carwash config file, alternatively you can set the field value to a Callable that returns the new field value. This closure will receive an instance of Faker and the current value of the attribute being scrubbed.

<?php

return [
    'users' => [
        'name' => function ($faker, $currentValue) {
            return "{$faker->firstName} {$faker->lastName}";
        },
        'bio' => BioFormatter::class
    ]
];

class BioFormatter
{
    public function __invoke($faker)
    {
        return $faker->sentences(42);
    }
}

Callables can also replace entire table configurations allowing full control over what data is scrubbed and how.

<?php

return [
    'users' => function ($faker, $user) {
        $firstName = $faker->firstName;
        $lastName = $faker->lastName;
    
        return [
            'first_name' => $firstName,
            'last_name' => $lastName,
            'email' => $firstName . "." . $lastName. "@" . $faker->safeEmailDomain,
            'phone' => substr($user['phone'], 0, 3) . "-555-" . $faker->randomNumber(4)
        ];
    },
];

Testing

$ composer test

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

This package is a fork of dansoppelsa/carwash with updated Laravel support.

License

The MIT License (MIT). Please see License File for more information.

About

Data scrubber for Laravel applications

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%