okipa / php-data-sanitizer
Data sanitizer to auto-cast entries, convert empty strings to null, etc.
Installs: 8 726
Dependents: 1
Suggesters: 0
Security: 0
Stars: 4
Watchers: 2
Forks: 2
Open Issues: 0
Requires
- php: >=7.2
- ext-json: *
Requires (Dev)
- illuminate/support: ~5.5.0|~5.6.0|~5.7.0|~5.8.0|^6.0
- phpmd/phpmd: ^2.0
- phpunit/phpunit: ^8.0
- squizlabs/php_codesniffer: ^3.3
README
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.
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 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); }
Without Laravel
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]
Usage
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)
Testing
composer test
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.