redot/validator

验证框架允许您配置验证逻辑,而不是编写代码。

0.0.1 2022-09-23 23:15 UTC

This package is auto-updated.

Last update: 2024-09-26 01:28:13 UTC


README

tests

验证库允许您配置验证逻辑,而不是编写代码。

安装

composer require redot/validator

测试

composer test

用法

注册您想使用的规则后,可以使用验证器如下

use Redot\Validator\Validator;

/* Instantiate a new validator */
$validator = new Validator($email);

/* Or you can use the static method init */
$validator = Validator::init($email);

/* Apply your rules */
$validator->email()->required()->max(255);

if (!$validator->validate()) {
    return $validator; // validation result in JSON format
}

此外,您还可以一次性验证多个值

$errors = Validator::initMultiple($_POST, [
    'email' => 'email',
    'password' => 'required|min:6|max:255'
]);

if (count($errors)) {
    // do something
}

请注意,多个验证返回的是失败数组,而不是验证器实例。

顺便说一句,您可以静态地验证值

$isEmail = Validator::email('admin@example.com'); // true

注册规则

默认情况下,验证器没有任何注册的规则。您可以通过使用 Validator::addRule() 方法添加它们。

use Redot\Validator\Rules\RequiredRule;

Validator::addRule(RequiredRule::class);

此外,您还可以使用 Validator::loadDefaultRules() 方法加载默认规则。

Validator::loadDefaultRules();

加载默认规则将注册以下规则

您可以提交一个拉取请求来添加新规则。

自定义规则

如果您有一个特定的规则要使用,可以创建一个扩展 Validator\AbstractRule 的类并将其注册。

class CustomRule extends AbstractRule
{
    protected string $message = '...';

    public function getName(): string
    {
        // name will be used to call the rule
    }

    public function validate(mixed $value, mixed ...$params): bool
    {
        // validation logic
    }
}

自定义消息

如果您想自定义错误消息,可以使用 Validator::setMessages() 方法。

Validator::setMessages([
    'required' => 'The value is required.',
    'email' => 'The value is not a valid email.',
    'max' => 'The value should be less than or equal to {0}.',
]);

请注意,您可以使用 {x} 占位符传递参数给消息,其中 x 是参数的索引。

就是这样。享受吧 👌!