peeyush-budhia/sanitizer

PHP 和 Laravel 框架的清理库。

v1.5 2023-02-17 07:23 UTC

This package is auto-updated.

Last update: 2024-09-17 11:04:48 UTC


README

PHP Version LICENSE

Latest Version on Packagist Total Downloads

Build Status

PHP 和 Laravel 框架的清理库。

安装

您可以通过 composer 安装此包

composer require peeyush-budhia/sanitizer

核心 PHP 使用

use Peeyush\Sanitizer\Sanitizer;

$data = [
    'name' => ' peeyush ',
    'birth_date' => '1987-09-10',
    'email' => 'Peeyush.Budhia@Gmail.CoM',
    'phone' => '(000)-000-00-00',
    'json' => '{"name":"Peeyush"}',
];

$filters = [
    'name' => 'trim|capitalize',
    'birth_date' => 'trim|format_date:"Y-m-d","F j, Y"',
    'email' => ['trim', 'lowercase'],
    'phone' => 'digit'
    'json' => 'cast:array',
];

$sanitizer = new Sanitizer($data, $filters);

var_dump($sanitizer);

将返回

[
    'name' => 'Peeyush',
    'birth_date' => 'September 10, 1987',
    'email' => 'peeyush.budhia@gmail.com',
    'phone' => '0000000000'
    'json' => ['name' => 'Peeyush'],
];

Laravel 使用

  • config/app.php 中注册 provider 并更新 Sanitizer 的 alias 如下
'providers' => [
        /*
         * Package Service Providers...
         */
        \Peeyush\Sanitizer\SanitizerServiceProvider::class,
    ]
'aliases' => [
        /*
         * Package aliases...
         */
        'Sanitizer' => \Peeyush\Sanitizer\Facade\SanitizerFacade::class,
    ],
  • 现在发布 request.stubtests 目录。要发布,请在应用程序根目录的终端上运行以下命令
php artisan vendor:publish --provider="Peeyush\Sanitizer\SanitizerServiceProvider"
在上述过程之后,您可以使用 Sanitizer 如下
  • 通过 Facade 使用 Sanitizer
$data = Sanitizer::make($data, $filters)->sanitize();
  • 使用 SanitizeInput trait 在您的 FormRequests 中清理输入。请注意,您需要添加一个返回要应用到输入的过滤器的 filters 方法。
namespace App\Http\Requests;

use Peeyush\Sanitizer\SanitizeInput;

class ExampleRequest extends Request
{
    use SanitizeInput;
    
    public function filters()
    {
        return [
            'name' => 'trim|capitalize',
        ];
    }
}
  • 要在应用程序根目录的终端上自动生成请求文件,请运行以下命令
php artisan make:Request ExampleRequest

可用的过滤器

自定义过滤器

  • 使用闭包或实现 Peeyush\Sanitizer\Contracts\Filter 接口的类
class RemoveStringFilter implements \Peeyush\Sanitizer\Contracts\Filter
{
    public function apply($value, array $options)
    {
        return str_replace($options, '', $value);
    }
}

$filters = [
    'remove_strings' => RemoveStringsFilter::class,
];

$sanitize = new Sanitizer($data, $filters)

鸣谢

许可

MIT 许可证 (MIT)。请参阅 许可文件 获取更多信息。