gd-75/request-body-validator

一个简单的PSR-7兼容请求体内容验证器

1.3.0 2021-06-17 20:21 UTC

This package is auto-updated.

Last update: 2024-09-18 03:20:56 UTC


README

一个简单的PHP库,使PSR-7请求解析体的验证在两个月后写和读时不再痛苦。

保证无正则表达式!

注意:文档已不再更新,我将最终更新它

示例

使用经典的isset、empty和is_numeric函数

$pb = $request->getParsedBody();
if(
    isset($pb["field"], $pb["field1"], $pb["field2"],  $pb["field3"],  $pb["field4"])
    && !empty($pb["field"]) && !empty($pb["field2"])
    && is_numeric($pb["field3"])
){
    // Do stuff
}

使用验证器,使用EXISTSEXISTS_NOT_EMPTYNUMERIC标准。

$validator = new RequestBodyValidator($request->getParsedBody());
if(
    $validator->validateMultiple(["field1", "field4"], RequestBodyValidator::EXISTS)
    && $validator->validateMultiple(["field", "field2"], RequestBodyValidator::NOT_EMPTY)
    && $validator->validateOne("field3", RequestBodyValidator::NUMERIC)
){
    // Do stuff
}

考虑到如果field3必须是数字,它也必须存在。这一点被考虑进去,你不需要在验证它是否为数字之前先验证它是否存在。这也适用于fieldfield2及其“非空”性。

文档

或者说是快速拼凑的几行代码,以展示所有选项。请参阅上面的示例。

方法

// Constructor, $request is your PSR-7 request object
$validator = new RequestBodyValidator($request->getParsedBody());

// validateOne, validates a single field
$validator->validateOne($name, $criteria);

// validateMultiple, validates multiple fields with the same criteria
$validator->validateMultiple([$name, $name1], $criteria);

标准