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.
- Install the package with composer :
composer require okipa/php-data-sanitizer
- 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)