swisnl/carwash
Carwash
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 security@swis.nl 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.
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 0.3.0 | ^8.3 | ^12.0| | MIT | |
| 0.2.0 | ^10.0| | MIT | ||
| 0.1.4 | ^6.0| | MIT | ||
| 0.1.3 | ^6.0| | MIT | ||
| 0.1.2 | ^6.0| | MIT | ||
| 0.1.1 | ^6.0| | MIT | ||
| 0.1.0 | ^6.0| | MIT | ||
| 0.0.5 | ^6.0| | MIT | ||
| 0.0.4 | ^6.0| | MIT | ||
| 0.0.3 | 5.5.* | MIT | ||
| 0.0.2 | 5.5.* | MIT | ||
| 0.0.1 | 5.5.* | MIT |