kamranahmedse / laravel-censor
A middleware to censor certain words from your pages
Requires
- php: >=5.4.0
- laravel/framework: ^5.1.11
This package is not auto-updated.
Last update: 2024-12-11 18:40:45 UTC
README
Let's you easily redact or replace the occurences of
words
,sentences
or%wildcards%
A laravel middleware that will automatically censor the words that you will specify. All you have to do is specify the things, that you want to redact or replace, in a configuration file and these words will automatically be redacted/replaced from the views on whose route you will specify the middleware.
Installation
Perform the following operations in order to use this middleware
-
Run
composer require kamranahmedse/laravel-censor
in your terminal -
Add Service Provider Open
config/app.php
and addKamranAhmed\LaravelCensor\LaravelCensorServiceProvider::class
to the end ofproviders
array:'providers' => array( .... KamranAhmed\LaravelCensor\LaravelCensorServiceProvider::class, ),
-
Register the Middleware After that open the file
app/Http/Kernel.php
and add the following'censor' => \KamranAhmed\LaravelCensor\CensorMiddleware::class
to the end of
$routeMiddleware
arrayprotected $routeMiddleware = [ ... 'censor' => \KamranAhmed\LaravelCensor\CensorMiddleware::class ];
-
Publish Configuration Open terminal and run
php artisan vendor:publish
How to use
-
After following the above steps, there will be a
censor.php
file inside theconfig
directory. The file has two arrays, namelyreplace
andredact
. -
You have to specify the words that you want to replace in the
replace
array with words or wildcards set to the keys of array and replacements as values i.e.'replace' => [ 'idiot' => '(not a nice word)', 'hate%' => 'peace', // Wildcard: Will replace the words beginning at hate e.g. hatered, hate, hated etc '%eograph%' => 'some-graphy-word', // Willcard: Will replace words containing `eograph` anywhere in the middle e.g. geographic, angeography etc 'seventh' => '7th', 'monthly' => 'every month', 'yearly' => 'every year', 'weekly' => 'every week', ],
-
For any words that you want to
redact
or completely remove, you have to specify them in theredact
array'redact' => [ 'idiot%', // e.g. idiot will be replaced with 5 asterisks, idiotic with 7 asterisks etc 'password', // Will be replaced with 8 asterisks 'word-that-i-really-dislike', ],
The words specified in
redact
array will turn into asterisks. For exampleidiot
will be turned into 5 asterisks (*****). -
Now for any route from which you want these words to be redacted or replaced, place the middleware
censor
over it and it will automatically redact/replace those words from all of the page. For example, below is how you can specify it over the route e.g.Route::get('post-detail', ['middleware' => 'censor', 'uses' => 'PostController@detail', 'as' => 'postDetail']);
Or specify it over the route group so that it may handle all the routes in that group e.g.
Route::group(['prefix' => 'post', 'middleware' => 'censor'], function () { Route::get('detail', ['uses' => 'PostController@detail']); Route::get('add', ['uses' => 'PostController@add']); });
How to Contribute
- Feel free to add some new functionality, improve some existing functionality etc and open up a pull request explaining what you did.
- Report any issues in the issues section
- Also you can reach me directly at kamranahmed.se@gmail.com with any feedback