johnbrightn/simple-field-validator

一个简单而强大的PHP字段后端输入字段验证器

v1.4 2020-11-01 13:38 UTC

This package is auto-updated.

Last update: 2024-09-11 01:07:19 UTC


README

如何安装?使用composer

composer require johnbrightn/simple-field-validator

如果你遇到找不到类的错误,运行以下命令以优化自动加载

composer dump -o

用法

主要用于API,其中请求对象以数组形式接收。

    $userInputs = $request->getParsedBody(); //object received from user/frontend

 //specify required fields, key=>maxLength. value is the maximum required length of every field/key
 
    $requiredFields = ["first_name"=>25, "last_name"=>25, "email"=>60, "username"=>15, "password"=>20];
    
    $value = ValidateFields::validate($requiredFields, $userInputs); //method to validate fields
方法参数描述
ValidateFields::validate($requiredFields, $requestObject, $customMessage=null) 

参数描述
$requiredFields 数组 - 期望从用户/前端接收的指定字段
$requestObj 数组 - 来自用户/前端的字段键/值数组
$customMessage 可选参数。当验证失败时返回的数组或自定义消息

示例用法

require_once __FILE__ . '/vendor/autoload.php';

use Jbn\Validate\ValidateFields;


$app->post('/register', function (Request $request, Response $response) {

    $userInputs = $request->getParsedBody(); //object received from user/frontend
    
    //if there are optional fields, that do not need validation, do not specify them in the required fields array
   /* $middle_name = null;
    if(isset($request->getParsedBody()['middle_name']))
        $middle_name = $request->getParsedBody()['middle_name'];
   */
    //specified required fields, key=>maxLength. value is the maximum required length of every field/key
    $requiredFields = ["first_name"=>25, "last_name"=>25, "email"=>60, "username"=>15, "password"=>20];
    
    $value = ValidateFields::validate($requiredFields, $userInputs);
   if ($value["error"]) { //if validation fails, return response
        return $response->withJson($value);
    } else {
        //if validation succeeds, u can either use the returned values or the user input values which may include optional fields
        $value; // values retured from the array, which include required fields only
        $userInput //values sent by the user which may include optional fields
        
        ... do other works with the valid fields
        $result = $db->registerUser($value);
        
        return $response->withJson($result);
    }
});

如果验证失败,返回的数组是

//if all required fields are not present
["error"=>true, "message"=> "No field is set"];

//if a required field is empty
["error"=>true, "message"=> "$field_name should not be empty"];

//if a required field has length more than specified
["error"=>true, "message"=> "$field_name should be $maxLength characters or less"];

//email validation. if email address is present, field should be specified as 'email',
["error"=>true, "message"=> "Invalid email address"];

如果验证成功,返回所有字段及其值

["error"=>false, $all_fields=>$all_values];

你可以指定自定义消息,当值是空的或字段长度超过指定值时

    $userInputs = $request->getParsedBody();
    
    //specified required fields, key=>maxLength. value is the maximum required length of every field/key
    $requiredFields = ["first_name"=>25, "last_name"=>25, "username"=>15, "password"=>20];
    
    $customMessage = ["Oops! First Name should not be blank and not more than 25 characters", "Enter your last name and not more than 25 characters", "Enter a username of 15 characters or less", "Password should not exceed 20 characters"];
    
    $value = ValidateFields::validate($requiredFields, $userInputs, $customMessage);