kamranahmedse/laravel-censor

一个中间件,用于从您的页面中屏蔽某些单词

v2.0 2016-03-01 17:28 UTC

This package is not auto-updated.

Last update: 2024-09-18 17:28:17 UTC


README

让您轻松地编辑或替换 wordssentences%wildcards% 的出现

一个 Laravel 中间件,会自动屏蔽您指定的单词。您只需在配置文件中指定要编辑或替换的内容,这些单词就会自动从您指定的中间件路由的视图中编辑或替换。

安装

按照以下步骤操作以使用此中间件

  • 在终端中运行 composer require kamranahmedse/laravel-censor

  • 添加服务提供者 打开 config/app.php 并将 KamranAhmed\LaravelCensor\LaravelCensorServiceProvider::class 添加到 providers 数组的末尾

    'providers' => array(
        ....
        KamranAhmed\LaravelCensor\LaravelCensorServiceProvider::class,
    ),
    
  • 注册中间件 然后,打开文件 app/Http/Kernel.php 并添加以下内容

    'censor' => \KamranAhmed\LaravelCensor\CensorMiddleware::class
    

    将其添加到 $routeMiddleware 数组的末尾

     protected $routeMiddleware = [
         ...
         'censor' => \KamranAhmed\LaravelCensor\CensorMiddleware::class
     ];
    
  • 发布配置 打开终端并运行

    php artisan vendor:publish

如何使用

  • 按照上述步骤操作后,在 config 目录中会有一个 censor.php 文件。该文件包含两个数组,即 replaceredact

  • 您需要在 replace 数组中指定要替换的单词,将单词或通配符设置为数组的键,将替换内容作为值,即

    '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',
    ],
  • 对于您想要 redact 或完全删除的任何单词,您必须在 redact 数组中指定它们

    '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',
    ],

    redact 数组中指定的单词将转换为星号。例如,idiot 将转换为5个星号(*****)。

  • 现在,对于您想要从其中编辑或替换这些单词的任何路由,将中间件 censor 放置在它上面,它将自动从所有页面中编辑/替换这些单词。例如,下面是如何指定它:

    Route::get('post-detail', ['middleware' => 'censor', 'uses' => 'PostController@detail', 'as' => 'postDetail']);

    或者指定它覆盖路由组,以便它可以处理该组中的所有路由,例如

    Route::group(['prefix' => 'post', 'middleware' => 'censor'], function () {
        Route::get('detail', ['uses' => 'PostController@detail']);
        Route::get('add', ['uses' => 'PostController@add']);
    });

如何贡献

  • 您可以自由添加一些新功能、改进一些现有功能等,并提交一个拉取请求说明您所做的工作。
  • 问题部分 报告任何问题
  • 您也可以通过 kamranahmed.se@gmail.com 直接与我联系,提出任何反馈