melhorenvio/range-validator

1.0.4 2023-02-27 17:43 UTC

README

Latest Version on Packagist Build Status Quality Score Total Downloads

此包的目的是验证传递的数组范围,并使用消息和错误代码定义无效的范围。然而,如果传递的范围没有问题,该方法将定义一个成功消息。

安装

您可以通过 composer 安装此包。

composer require melhorenvio/range-validator

用法

首先,您需要实例化一个 RangeValidator 类型的变量。

$rangeValidator = new RangeValidator();

您需要设置 RangeValidator 依赖项。

use Melhorenvio\RangeValidator\RangeValidator;

setRanges() 和 addRanges() 方法接受一个参数,此参数必须是以下格式显示的数组。

$ranges = [
    'begin' => '12345678',
    'end' => '87654321'
];

"begin" 和 "end" 值必须是 String 或 Integer 类型,否则将显示错误消息而不是无效范围。

setRanges() 方法将定义通过参数传递的值作为参数的范围,它将覆盖已设置的其它范围。

$rangeValidator->setRanges($range);

addRanges() 方法与 setRanges() 函数执行相同的操作,但它不会覆盖已设置的其它范围。

$rangeValidator->addRanges($range);

checkEmpty() 方法将响应设置为具有空值的范围。

$rangeValidator->checkEmpty();

checkBeginBiggerThanEnd() 方法将响应设置为起始值大于结束值的范围。

$rangeValidator->checkBeginBiggerThanEnd();

checkRepeated() 方法将响应设置为出现次数超过一次的范围。

$rangeValidator->checkRepeated();

checkOverlapping() 方法将响应设置为与其他范围重叠的范围。

$rangeValidator->checkOverlapping();

useAirport() 方法将使验证器在查找重叠时考虑范围是否属于同一机场。如果范围属于同一机场,验证器将不考虑重叠。

$rangeValidator->useAirport();

在这种情况下,如果启用 useAirport 方法,setRanges() 和 addRanges() 的参数将发生变化,因为将添加字符串参数 'airport'。因此,数组的格式将如下所示。

$ranges = [
    'begin' => '12345678',
    'end' => '87654321',
    'airport' => 'AirportOne'
];

validate() 方法将真正验证范围并返回响应,没有此方法验证将不会工作。如果您设置了上述一个或多个检查方法,验证器将只考虑设置的属性;如果您没有设置任何一个,验证器将考虑所有属性。

$rangeValidator->validate();

getResponse() 方法将以数组形式返回响应属性。

$rangeValidator->getResponse();

getRanges() 方法将以数组形式返回范围属性。

$rangeValidator->getRanges();

响应属性将是一个包含 "message"、"code" 和(如果有)"data" 属性的数组数组,如下所示。

[
    'message' => String,
    'code' => Int,
    'data' => Array
]

如果未使用 getResponse() 或 getRanges() 方法,则这些方法将返回 RangeValidator 实例对象。