andrewdyer/slim3-validator

使用Respect/Validation构建的Slim框架验证库

v0.1.1 2018-11-15 13:47 UTC

This package is auto-updated.

Last update: 2024-09-17 21:49:08 UTC


README

Codacy Badge Latest Stable Version Latest Unstable Version License Total Downloads Daily Downloads Monthly Downloads composer.lock available

使用Respect/Validation构建的Slim框架验证库。

许可证

遵循MIT许可证。完全免费用于私人或商业项目。

安装

composer require andrewdyer/slim3-validator

用法

use Slim\App;
use Anddye\Validation\Validator;
use Respect\Validation\Validator as v;

$app = new App();

$container = $app->getContainer();

$container['validationService'] = function () {
    return new Validator();
};

$app->get('/', function (Request $request, Response $response) use ($container) {
    $validation = $container['validationService']->validate($request, [
        'email' => v::email()->length(1, 254)->notEmpty(),
        'forename' => v::alpha()->length(1, 100)->notEmpty()->noWhitespace(),
        'password' => v::length(8, 100)->notEmpty(),
        'surname' => v::alpha()->length(1, 100)->notEmpty()->noWhitespace(),
        'username' => v::alnum()->length(1, 32)->notEmpty()->noWhitespace(),
    ]);

    if (!$validation->hasPassed()) {
        // Validation has not passed
    } else {
        // Validation has passed
    }
});

$app->run();

将新的Anddye.Validation\Validator;实例附加到您的应用程序容器中,以便在任何需要的地方访问。

$container['validationService'] = function () {
    return new \Anddye\Validation\Validator();
};

您可以使用validate()辅助函数轻松验证表单输入。将validate()方法分配给变量,传递请求对象以及一个数组,其中数组键表示字段的名称,数组值表示验证规则。

$validation = $container['validationService']->validate($request, [
    'email' => v::email()->length(1, 254)->notEmpty(),
    'forename' => v::alpha()->length(1, 100)->notEmpty()->noWhitespace(),
    'password' => v::length(8, 100)->notEmpty(),
    'surname' => v::alpha()->length(1, 100)->notEmpty()->noWhitespace(),
    'username' => v::alnum()->length(1, 32)->notEmpty()->noWhitespace(),
]);

Respect\Validation是命名空间化的,但您可以通过将单个类导入上下文来简化您的操作

use Respect\Validation\Validator as v;

然后,您可以使用hasPassed()方法检查验证是否通过

if (!$validation->hasPassed()) {
    // Validation has not passed
} else {
    // Validation has passed
}

如果验证失败,可以通过调用getErrors()方法访问验证错误数组

foreach ($validation->getErrors() as $input => $errors) {
    foreach ($errors as $error) {
        echo $error;
    }
}

支持

如果您对这个库有一般性问题,请随时通过Twitter联系我。

如果您认为您找到了一个问题,请使用问题跟踪器报告它,或者更好的是,分支存储库并提交拉取请求。

如果您使用这个包,我很乐意听听您的想法!

有用链接