Often when receiving data from a client in an API or from a form request, you'll find yourself running the same data cleaning operations such as transforming 'false'
to the boolean false
, converting ''
to null
etc. This can be a pain.
This package simplifies the process drastically.
Laravel version (optional) | PHP version | Package version |
---|---|---|
^5.5 | ^7.2 | ^1.1 |
^5.0 | ^5.6 | ^1.0 |
- Install the package with composer :
composer require "okipa/php-data-sanitizer:^1.1"
- Laravel 5.5+ uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider and the Facade alias.
If you don't use auto-discovery or if you use a Laravel 5.4- version, add the package service provider in the
register()
method from yourapp/Providers/AppServiceProvider.php
:
// php data sanitizer
// https://github.com/Okipa/php-data-sanitizer
$this->app->register(Okipa\DataSanitizer\Laravel\DataSanitizerServiceProvider::class);
- Then, add the package facade alias in the
$aliases
array from theconfig/app.php
config file.
'aliases' => [
'...',
'DataSanitizer' => Okipa\DataSanitizer\Laravel\Facades\DataSanitizer::class
]
When this provider is booted, you'll gain access to a DataSanitizer
facade, which you may use in your controllers.
public function index()
{
$data = [
// data to sanitize
];
$sanitizedData = \DataSanitizer::sanitize($data);
}
DataSanitizer ships with native implementations of the bootloader and facade. In order to use it import class.
// import the package facade
use Acid\DataSanitizer\Native\Facades\DataSanitizer;
// sanitize your data
$data = ['false', '3', ''];
$sanitizedData = DataSanitizer::sanitize($data);
// produces [false, 3, null]
The only public method in the package is sanitize($data, $default = null, $jsonDecodeAssoc = false)
.
Call the sanitizer as following :
$data = ['null', 'true'];
$sanitizedData = DataSanitizer::sanitize($data);
$data
can be a string, boolean, number, array, object or JSON string.
Examples of the cleaned data :
'' => null
' string trim ' => 'string trim'
'null' => null
'false' => false
'true' => true
'on' => true
'3' => 3
'5.07' => 5.07
When using arrays and objects, the method will sanitize each element in the given data and return an array (or object) with the cleaned values.
$default
can be used to return a default value if the resulting cleaned data is null
or false
.
Example:
DataSanitizer::sanitize('', 'hello');
// will return 'hello'
$jsonDecodeAssoc
is used for decoding JSON.
See php json_decode documentation
$jsonDecodeAssoc = true // default is false
$data = json_decode($data, null, $jsonDecodeAssoc);
// will decode your json as associative array (and as object if false)
composer test
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.