mawuekom/laravel-request-sanitizer

Easily sanitize your form data

v1.2.0 2023-09-22 03:16 UTC

This package is auto-updated.

Last update: 2024-12-22 06:14:46 UTC


README

Easily sanitize your form data


This package provides an easy way and a fluent interface to sanitize form data.

  • The request sanitizer allows you to easily manipulate your form data before any validation or treatment.
  • It's also compatible with Laravel's FormRequest object.

Installation

You can install the package via composer:

composer require mawuekom/laravel-request-sanitizer

Usage

Syntax is similar to the way rules are added to a Form Request.

class StoreUserDataRequest extends FormRequest
{
     use InputSanitizer;
     
     protected $sanitizers = [
        'name' => [
            Uppercase::class,
        ],
        'first_name' => [
            CapitalizeEachWords::class,
        ],
        'phone_number' => [
            RemoveNonNumeric::class
        ],
     ];
}

Available Sanitizers


- 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
            ]
        ]
    ];
 }

Please check PHP Documentation for more information on filter_vars.

Writing your own Sanitizer

You can write your own sanitizer by implementing the SanitizerContract interface, which requires only one method.

namespace Mawuekom\RequestSanitizer\Contracts;

/**
 * Request sanitizer contract
 *
 * Class DataManagerRepo
 *
 * @package Mawuekom\RequestSanitizer\Contracts
 */
interface SanitizerContract
{
    /**
     * Sanitize an input and return it.
     *
     * @param $input
     * @return mixed
     */
    public function sanitize($input);
}

License

The MIT License (MIT). Please see License File for more information.