sonypradana / validator
PHP 验证器
v0.8.4
2024-02-04 13:59 UTC
Requires
- php: ^7.4 || ^8.0
- ext-intl: *
- wixel/gump: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.49
- pestphp/pest: ^1.23 || ^2.0
- phpstan/phpstan: ^1.10
- symfony/var-dumper: ^5.4 || ^6.4.3
README
验证与过滤
在最受欢迎的 PHP 验证器之一 (Wixel/GUMP) 的基础上构建优雅的验证。
验证
$val = new Validator($_POST); $val->field('name')->required()->validName(); // or $val->name->required()->validName(); $val->if_valid(function() { // continue })->else(function($err) { // array of error messages var_dump($err); });
支持 GUMP
$is_valid = GUMP::is_valid(array_merge($_POST, $_FILES), [ 'username' => vr()->required()->alpha_numeric(), 'password' => vr()->required()->between_len(6, 100), 'avatar' => vr()->required_file()->extension('png', 'jpg') ]); if ($is_valid === true) { // continue } else { // array of error messages var_dump($is_valid); }
可用方法
required()
valid_email()
max_len()
min_len()
exact_len()
between_len()
alpha()
alpha_numeric()
alpha_numeric_space()
alpha_numeric_dash()
alpha_dash()
alpha_space()
numeric()
integer()
boolean()
float()
valid_url()
url_exists()
valid_ip()
valid_ipv4()
valid_ipv6()
guidv4()
valid_cc()
valid_name()
contains()
contains_list()
doesnt_contain_list()
street_address()
date()
min_numeric()
max_numeric()
min_age()
invalid()
starts()
extension()
required_file()
equalsfield()
iban()
phone_number()
regex()
valid_json_string()
valid_array_size_greater()
valid_array_size_lesser()
valid_array_size_equal()
并且
not()
,用于反转所有可用方法。where($condition)
,当条件为真时执行规则。if($condition)
,当条件为真时执行规则。
过滤
过滤字段输入
$val = new Validator($_POST); $val->filter('name')->trim()->lowwer_case(); // run filter $filter = $val->filter_out();
验证和过滤
$val = new Validator($_POST); $val->field('name')->required()->valid_name(); $val->filter('name')->trim()->lowwer_case(); // run validation and filter $filter = $val->failedOrFilter());
为什么使用 Validator
为什么选择 Validator 而不是 GUMP
验证器。
- 避免在构建验证规则时出现拼写错误。在使用验证器时可能会意外地输入错误的验证规则(拼写错误)。这可能导致运行时错误。
- 开箱即用的自动补全。自动补全验证规则和维护规则。