envatic/laravel-profane

Laravel Profanity Valitador

v0.6.0 2022-05-10 03:25 UTC

README

Latest Version on Packagist Software License run-tests Total Downloads Check & fix styling

I made this package to perform a validation for swearwords using Laravel validation service.

Installation

Install via composer

composer require envatic/laravel-profane

Configuration

Add the ProfaneServiceProvider class in your config/app.php file.

<?php
return [
    // ...

    'providers' => [
        // ...
        LaravelProfane\ProfaneServiceProvider::class,
    ];

    // ...
];

Publish vendor lang files if you need to replace by your own.

php artisan vendor:publish

Usage

This package register a custom validator. You can use in your controller's validate function.

<?php
// ...
class MyController extends Controller
{
    public function store(Request $request)
    {
        $this->validate($request, [
            'username' => 'required|profane'
        ]);

        // ...
    }
}

The validator will load the default locale in your config/app.php file configuration which by is en. If your locale is not supported, please post an issue for this project

If you want to use others dictionaries you can pass them as parameters in the validator.

<?php
// ...
class MyController extends Controller
{
    public function store(Request $request)
    {
        $this->validate($request, [
            'username' => 'required|profane:es,en'
        ]);

        // ...
    }
}

You can also send as parameter a path of a file which is a dictionary in order to replace the default dictionary or add a new non supported locale.

<?php
// ...
class MyController extends Controller
{
    public function store(Request $request)
    {
        $this->validate($request, [
            'username' => 'required|profane:es,en,'.resource_path('lang/fr/dict.php')
        ]);

        // ...
    }
}

Strict validation

Now you can strictly validate the exact profane word in the content.

<?php
// ...
class MyController extends Controller
{
    public function store(Request $request)
    {
        $this->validate($request, [
            'username' => 'required|strictly_profane:es,en'
        ]);

        // ...
    }
}

This fixes known issues when you get a error in validation for words like class or analysis, as they include ass and anal respectively, but fails the validation for content like sucker69.

Getting Help

If you're stuck getting something to work, or need to report a bug, please post an issue in the Github Issues for this project.

Contributing

If you're interesting in contributing code to this project, clone it by running:

git clone git@github.com:envatic/laravel-profane.git

Please read the CONTRIBUTING file.

Pull requests are welcome, but please make sure you provide unit tests to cover your changes. You can help to add and support more locales!

Thanks to @dorianneto for his contributions.

Supported Locales

License

This project is open-sourced software licensed under the MIT license.