Skip to content

mawuva/laravel-request-sanitizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Request Sanitizer

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

Sanitizer Description
Capitalize Capitalizes the first character of a string
CapitalizeEachWords Capitalizes each first character of a new word in a string
Cast Casts a variable into the given type.
EscapeHTML Remove HTML tags and encode special characters from the given string.
FilterVars Simple PHP filter_var sanitizer
Lowercase Converts a string to lowercase
RemoveNonNumeric Removes any non numeric character
StripTags Strip HTML and PHP tags using php's strip_tags()
Trim Trims a string using php's trim()
TrimDuplicateSpaces Replaces duplicate spaces with a single space.
Uppercase Converts a string to uppercase

- 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.