alksily/validator

Validator 组件提供验证值的工具。

1.2 2020-04-06 06:00 UTC

This package is auto-updated.

Last update: 2024-09-06 15:53:53 UTC


README

Validator 组件提供验证值的工具。

要求

  • PHP >= 7.0

安装

在您的Web项目根目录中运行以下命令

composer require alksily/validator

用法

use Alksily\Validator\Filter;
use Alksily\Validator\Traits\FilterRules;

class UserFilter extends Filter
{
    use FilterRules;

    // check data for create new user
    public static function add(array &$data = [])
    {
        $filter = new self($data);

        $filter
            ->addGlobalRule($filter->leadEscape()) // global rule for all fields in $data
            ->addGlobalRule($filter->leadTrim())
            ->attr('username')
                ->addRule($filter->checkStrlenMax(20)) // parameter passing for checking
                ->addRule($filter->checkStrlenMin(3))
            ->attr('password')
                ->addRule($filter->checkStrlenBetween(3, 20))
            ->attr('password_again')
                ->addRule($filter->checkEqualToField('password'), 'Passwords do not match') // second arg is reason error
            ->attr('email')
                ->addRule($filter->checkEmail())
            ->attr('ip')
                ->addRule($filter->checkIp());

        return $filter->run();
    }
}

// data example
$data = [
    'username'       => 'Aleksey',
    'password'       => 'MyPassword',
    'password_again' => 'MyPassword',
    'email'          => 'aleksey@example.com',
    'ip'             => '127.0.0.1',
];

$result = UserFilter::add($data);

if ($result === true) {
    // check ok
    var_dump($data); // sanitized data
} else {
    // found an error
    var_dump($result);
}

密码不匹配时的示例错误

array(1) {
  ["password_again"]=>
  string(22) "Passwords do not match"
}

贡献

请参阅CONTRIBUTING以获取详细信息。

许可证

Alksily Validator 适用于MIT许可证。有关更多信息,请参阅许可证文件