gd-75 / request-body-validator
一个简单的PSR-7兼容请求体内容验证器
1.3.0
2021-06-17 20:21 UTC
Requires
- php: >=7.4
- psr/http-message: ^1.0
Requires (Dev)
- nyholm/psr7: ^1.4
- phpunit/phpunit: ^9.5
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 }
使用验证器,使用EXISTS
、EXISTS_NOT_EMPTY
和NUMERIC
标准。
$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
必须是数字,它也必须存在。这一点被考虑进去,你不需要在验证它是否为数字之前先验证它是否存在。这也适用于field
和field2
及其“非空”性。
文档
或者说是快速拼凑的几行代码,以展示所有选项。请参阅上面的示例。
方法
// 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);