Data sanitizer to auto-cast entries, convert empty strings to null, etc.
, (*1)
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., (*2)
Compatibility
Laravel version (optional) |
PHP version |
Package version |
^5.5 |
^7.2 |
^1.1 |
^5.0 |
^5.6 |
^1.0 |
Table of Contents
Installation
- Install the package with composer :
composer require "okipa/php-data-sanitizer:^1.1"
Laravel users
- 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 your app/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 the config/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., (*3)
public function index()
{
$data = [
// data to sanitize
];
$sanitizedData = \DataSanitizer::sanitize($data);
}
Without Laravel
DataSanitizer ships with native implementations of the bootloader and facade. In order to use it import class., (*4)
// import the package facade
use Acid\DataSanitizer\Native\Facades\DataSanitizer;
// sanitize your data
$data = ['false', '3', ''];
$sanitizedData = DataSanitizer::sanitize($data);
// produces [false, 3, null]
Usage
The only public method in the package is sanitize($data, $default = null, $jsonDecodeAssoc = false)
.
Call the sanitizer as following :, (*5)
$data = ['null', 'true'];
$sanitizedData = DataSanitizer::sanitize($data);
$data
can be a string, boolean, number, array, object or JSON string.
Examples of the cleaned data :, (*6)
'' => 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
., (*7)
Example:, (*8)
DataSanitizer::sanitize('', 'hello');
// will return 'hello'
$jsonDecodeAssoc
is used for decoding JSON.
See php json_decode documentation, (*9)
$jsonDecodeAssoc = true // default is false
$data = json_decode($data, null, $jsonDecodeAssoc);
// will decode your json as associative array (and as object if false)
Testing
bash
composer test
, (*10)
Changelog
Please see CHANGELOG for more information what has changed recently., (*11)
Contributing
Please see CONTRIBUTING for details., (*12)
Credits
License
The MIT License (MIT). Please see License File for more information., (*13)