arondeparon / laravel-request-sanitizer
An easy to use request sanitizer that allows you to sanitize your form data before validating it.
Fund package maintenance!
arondeparon
Requires
- php: ^8.1
- symfony/http-foundation: ^4.3.4|>=5.1.3|^6.0
Requires (Dev)
- mockery/mockery: ^1.4
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
- phpunit/phpunit: ^8.0|^9.0|^10.0
README
The arondeparon/laravel-request-sanitizer
package provides a fluent interface to sanitize form requests before validating them.
Why should I use this package?
Often, validating your request is not enough. The request sanitizer allows you to easily
manipulate your form data before passing it to the validator. You can start using it in a matter
of minutes and it is fully compatible with Laravel's FormRequest
object.
Table of Contents
- How to use
- Installing
- Usage
- Predefined Sanitizers
- Writing your own Sanitizer
- Testing
- Credits
- License
How to use
Syntax is similar to the way rules
are added to a Form Request.
class StoreCustomerInformationRequest extends FormRequest { use SanitizesInputs; protected $sanitizers = [ 'lastname' => [ Capitalize::class, ], 'mobile_phone' => [ RemoveNonNumeric::class ], ]; }
Installing
composer require arondeparon/laravel-request-sanitizer
Usage
- Add the
SanitizesInputs
trait to your form request. - Write your own sanitizers or use one of the supplied sanitizers and add them to the
$sanitizers
property of your form request. - Your request data will now be sanitized before being validated.
Predefined Sanitizers
Trim
- simple PHPtrim()
implementationTrimDuplicateSpaces
replaces duplicate spaces with a single space.RemoveNonNumeric
- removes any non numeric characterCapitalize
- capitalizes the first character of a stringUppercase
- converts a string to uppercaseLowercase
- converts a string to lowercaseFilterVars
- simple PHPfilter_var
sanitizerCarbonDate
- cast a string to a Carbon object- Contributions are appreciated!
FilterVars usage
The FilterVars sanitizer acts as a wrapper of the default PHP filter_var
function.
It accepts the same (optional) parameters as the original function.
Both parameters can be either an array
or string
type:
{ protected $sanitizers = [ 'last_name' => [ FilterVars::class => [ 'filter' => FILTER_SANITIZE_STRING, 'options' => FILTER_FLAG_STRIP_BACKTICK ] ] ]; }
For more information on filter_vars please refer to https://www.php.net/manual/en/function.filter-var.php.
Writing your own Sanitizer
Writing your own sanitizer can be done by implementing the Sanitizer
interface, which requires only
one method.
interface Sanitizer { public function sanitize($input); }
Testing
$ composer test
Credits
License
The MIT License (MIT). Please see License File for more information.