kubinyete/assertation

此软件包最新版本(1.0.4)没有提供许可证信息。

提供 Assert 类,使您能够验证数据

1.0.4 2023-12-22 20:45 UTC

This package is auto-updated.

Last update: 2024-09-24 20:17:59 UTC


README

Assertation 是一个免费且易于使用的验证库,它旨在允许更丰富的语法,同时在应用数据验证时保持断言导向的方法。

入门

要开始使用,请直接使用我们的软件包并通过 Composer 安装

composer require kubinyete/assertation

用法

首先,我们可以通过查看一些示例和比较来理解此方法的目标,以下是在使用和不使用 assertation 的情况下等效验证的一些示例。

$data = '   Spaced   text   ';

// This validation:
$validated = ($data = trim($data)) && strlen($data) > 2;

if (!$validated) {
    throw new UnexpectedValueException('Data is required with at least 2 characters');
}

// Is equivalent to:
$data = Assert::value($data)->asTrim()->lgt(2)->validate()->get();

// And also equivalent to:
$data = Assert::value($data)->rules('asTrim;lgt,2')->get();

以下示例是一个更复杂的验证,对于简单的验证,原生的方法更容易实现,但当我们验证规则变得更加复杂时,assertation 可以轻松地以更丰富的表达方式验证和修改我们的数据。

$data = Assert::value($data)->rules('null|str;asTrim;asUppercase;asTruncate,100;lgt,1')->get();
// Data can either be null or a string that has a minimum of 1 character and has every character in uppercase
// while limiting the maximum size to 100 characters with a ellipsis cutoff.

$data = Assert::value($data)->rules('null|float|asDecimal')->get();
// Data can either be null, a float or a string with a decimal number (Ex: 123.23).

$data = Assert::value($data)->null()->or()->asUppercase()->asTrim()->in(['HELLO', 'WORLD'])->get();
// Data can either be null or be 'hello' or 'world' with case insensitivity, resulting only in a upper case result.