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
$aliasesarray from theconfig/app.phpconfig 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.07When 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)


