markuper / sanitizer

1.0.3 2023-04-03 13:45 UTC

This package is auto-updated.

Last update: 2024-09-03 17:44:05 UTC


README

Travis Status Github Release Packagist License Packagist Downloads Github Issues Tips

Sanitizer 包

Sanitizer 可以用来标准化数据以简化验证,或者提供数据一致性。

基本用法

首先构建一个规则数组。

$rules = [
    'name'      => 'trim',
    'email'     => 'trim|strtolower'
];

规则可以包含可调用的函数或 sanitizer 绑定的名称(稍后介绍)。你可以使用管道 | 或数组来指定多个清理规则。

清理器可以以下方式执行。

$sanitizer = new Sanitizer;
$sanitizer->sanitize($rules, $data);

以下是一个完整的示例。

// Construct rules array.
$rules = [
    'name'      => 'trim',
    'email'     => 'trim|strtolower'
];

// Data array to be sanitized.
$data = [
    'name' => ' Dayle ',
    'email' => ' me@DAYLEREES.com'
];

// Construct a new sanitizer.
$sanitizer = new Sanitizer;

// Execute the sanitizer.
$sanitizer->sanitize($rules, $data);

以下是在执行后 $data 的内容。

[
    'name' => 'Dayle',
    'email' => 'me@daylerees.com'
]

使用 Laravel 门面,语法可以变得稍微简洁一些。

Sanitizer::sanitize($rules, $data);

如下清理单个值。

$rules = 'trim|strtolower';
$data = '  Dayle';

Sanitizer::sanitizeValue($rules, $data);

以下是返回的值。

dayle

自定义清理规则

可以通过多种方式添加清理器。

使用闭包。

Sanitizer::register('reverse', function ($field) {
    return strrev($field);
});

使用回调。

Sanitizer::register('reverse', [new ClassHere, 'method']);

使用类/方法对。

Sanitizer::register('reverse', 'Namespace\Class\Here@method');

如果未提供方法,将通过 Illuminate IoC 容器实例解析类,默认假设为 sanitize()

安装

Sanitizer 包可以独立使用或与 Laravel 框架一起使用。

独立使用

首先包含 sanitizer 包。

"daylerees/sanitizer": "dev-master"

现在只需 use Sanitizer 类。

use Rees\Sanitizer\Sanitizer;

与 Laravel 一起使用

app/config/app.php 文件中包含 Service Provider 类。

'providers' => array(
    ...
    'Rees\Sanitizer\SanitizerServiceProvider'
)

现在只需添加门面别名。

'aliases' => array(
    ...
    'Sanitizer' => 'Rees\Sanitizer\Facade'
)