buuum/requestcheck

过滤和验证数据

v2.0.10 2018-07-10 13:55 UTC

This package is auto-updated.

Last update: 2024-09-17 20:55:40 UTC


README

Packagist license

安装

系统要求

要使用 Buuum\RequestCheck,您需要 PHP >= 7.1.0,但推荐使用最新的稳定版 PHP。

Composer

Buuum\RequestCheck 可在 Packagist 上找到,并可以使用 Composer 进行安装

composer require buuum/requestcheck

手动

只要遵循 PSR-0 或 PSR-4 标准,您可以使用自己的自动加载器。只需将 src 目录的内容放入您的 vendor 目录中即可。

### 输入字段

输入

$name = new Input('name');
$name->setFilters([new FilterTrim()]);
$name->setValidations([new ValidRequired()]);

INPUTOBJECT

$name = new Input('name');
$name->setFilters([new FilterTrim()]);
$name->setValidations([new ValidRequired()]);

$url = new Input('url');
$url->setValidations([new ValidRequired()]);

$imageobject = new InputObject('image', new InputCollection([$name, $url]));
$imageobject->setValidations([new ValidRequired()]);

INPUTARRAY

// Simple Array
$url = new Input('url');
$url->setValidations([new ValidRequired()]);

$urls = new InputArray('urls', $url);
$urls->setValidations([new ValidRequired()]);

// Array objects
...
$images = new InputArray('urls', $imageobject);

// Array arrays
...
$images_array = new InputArray('images_array', $images);

如何使用

$data = [
    'name'        => '   dr  r rwe wed   ',
    'url'         => ' url',
];
$fields = [$name, $url];
$request = new RequestCheck($data, new InputCollection($fields));

// return RequestResponse
$response = $request->checkRequest();

if($response->isValid()){
    // no errors
    var_dump($request->getData());
}else{
    var_dump($response->getErrors());
}

过滤器

属性

移除所有属性

...
$name->setFilters([new FilterAttributes()]);

自定义标签

移除自定义标签

  • param1: 允许标签
...
$name->setFilters([new FilterCustomTags('<p><a>')]);

电子邮件

返回过滤电子邮件

...
$name->setFilters([new FilterEmail()]);

HtmlEncode

返回 htmlencode 数据

...
$name->setFilters([new FilterHtmlEncode()]);

RemovePunctuation

移除标点符号

...
$name->setFilters([new FilterRemovePunctuation()]);

Sanitize Number

清理数字数据

...
$name->setFilters([new FilterSanitizeNumber()]);

字符串

清理字符串数据

...
$name->setFilters([new FilterString()]);

Trim

修剪数据

...
$name->setFilters([new FilterTrim()]);

UrlEncode

编码 URL

...
$name->setFilters([new FilterUrlEncode()]);

Whole Number

整数

...
$name->setFilters([new FilterWholeNumber()]);

Date

格式化日期

  • param1: 字符串 input_format
  • param2: 字符串 output_format
...
$name->setFilters([new FilterDate('m/y', 'ym')]);

创建自定义过滤器

class FilterLetter implements Filter
{
    
    protected $letter;
    
    public function __construct($letter)
    {
        $this->letter = $letter;
    }

    public function filter($data)
    {
        return str_replace($this->letter,'', $data);
    }
}
...
$name->setFilters([new FilterLetter('a')]);

验证器

REQUIRED

检查输入是否存在

  • param1: 字符串(自定义消息)
...
$name->setValidations([new ValidRequired()]);

电子邮件

检查输入是否为有效的电子邮件

  • param1: 字符串(自定义消息)
...
$name->setValidations([new ValidEmail()]);

### Integer
Check if input is a valid integer
- param1: string (custom message)
```php
...
$name->setValidations([new ValidInteger()]);

Exact

检查输入值是否与值精确匹配

  • param1: int value to exact
  • param2: 字符串(自定义消息)
...
$name->setValidations([new ValidExact(34)]);

Exact Length

检查输入值是否具有确切长度

  • param1: int length
  • param2: 字符串(自定义消息)
...
$name->setValidations([new ValidExactLength(34)]);

MAX

检查输入值是否为最大值

  • param1: int value max
  • param2: 字符串(自定义消息)
...
$name->setValidations([new ValidMax(34)]);

MIN

检查输入值是否为最小值

  • param1: int value min
  • param2: 字符串(自定义消息)
...
$name->setValidations([new ValidMin(34)]);

MAXLENGTH

检查输入值是否为最大值

  • param1: int value max
  • param2: 字符串(自定义消息)
...
$name->setValidations([new ValidMaxLength(34)]);

MINLENGTH

检查输入值是否为最小值

  • param1: int value min
  • param2: 字符串(自定义消息)
...
$name->setValidations([new ValidMinLength(34)]);

REGEX

检查输入是否通过正则表达式有效

  • param1: 字符串 regex
  • param2: 字符串(自定义消息)
预定义正则表达式
  • NUMERIC
  • ALPHA
  • ALPHA_NUMERIC
  • ALPHA_SPACE
  • ALPHA_NUMERIC_SPACE
  • SLUG
...
$name->setValidations([new ValidRegex(ValidRegex::NUMERIC)]);

URL

检查输入是否为有效 URL

  • param1: 字符串(自定义消息)
...
$name->setValidations([new ValiUrl(34)]);

Contains

检查字符串是否包含数组中的任何值

  • param1: 数组
  • param2: 字符串(自定义消息)
...
$words = ['blue', 'yellow'];
$name->setValidations([new ValidContains($words)]);

Date

检查输入是否为有效日期

  • param1: 字符串日期格式
  • param2: 字符串(自定义消息)
...
$format = 'Y/m/d';
$name->setValidations([new ValidDate($format)]);

LICENSE

The MIT License (MIT)

版权所有 (c) 2017

特此授予任何获得本软件及其相关文档副本(以下简称“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许将软件提供给他人,以便他们可以这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的副本或实质性部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是基于合同、侵权或其他方式引起的,无论这些索赔、损害或其他责任是否与软件或其使用或其他方式相关。