redot / validator
验证框架允许您配置验证逻辑,而不是编写代码。
0.0.1
2022-09-23 23:15 UTC
Requires
- php: >=8.0
Requires (Dev)
- jetbrains/phpstorm-attributes: ^1.0
- pestphp/pest: ^1.21
- phpstan/phpstan: ^1.6
This package is auto-updated.
Last update: 2024-09-26 01:28:13 UTC
README
验证库允许您配置验证逻辑,而不是编写代码。
安装
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
是参数的索引。
就是这样。享受吧 👌!