wangyu/tp-validate

TP5.1 的反射验证器核心类,含参数中间件封装,路由参数验证中间件,方法注释参数提取器,基于`wangyu/reflex-core`扩展

dev-master 2019-07-15 09:59 UTC

This package is auto-updated.

Last update: 2024-04-15 20:18:56 UTC


README

TRR

TRR 是什么?

TRR 是 ThinkPHP51 Reflection Restful API(注:API设计风格) 的字母第一个字符大写后拼接而来, 从ThinkPHP51 Reflection Restful API全称可以看出来, 这套接口框架设计主要围绕反射来做Restful API接口设计的。

Git库地址

Github: https://github.com/china-wangyu/TRR Gitee: https://gitee.com/china_wangyu/TRR

简介

TP5.1 的反射验证器核心类,含参数中间件封装,路由参数验证中间件,方法注释参数提取器,基于wangyu/reflex-core扩展

安装

composer require wangyu/tp-validate

快速入门

1. middleware.php 中间件注册

文件地址:config/middleware.php

内容:

<?php

return [
    // 默认中间件命名空间
    'default_namespace' => 'app\\http\\middleware\\',
    'Validate' => WangYu\Param::class,
];

2. 方法注释中使用 @validate()函数 或 @param()

  • 函数说明
@函数名 解释 格式 函数参数说明
validate 注释验证器函数 @validate('name') name: 验证器名称
param 注释参数函数 @param('name','doc','rule') name: 参数名称,doc: 解释, rule: 规则
  • @validate函数说明

@validate()函数,需要在application/api/validate目录下创建验证器。 或者:创建 config/trr.php 配置文件,内容为:

<?php 
return [
    // 默认验证器路径
    'validate_root_path' => 'api/validate',
];
  • @param函数说明

@param函数与@validate,作者优选@validate,希望如果每个方法里只用一种验证方式

3. 在路由配置route/route.php配置路由时,加上middleware()

例如:

<?php
use think\facade\Route;

Route::group('', function () {
    Route::group('v1', function () {
        // 查询所有图书
        Route::post('book/', 'api/v1.Book/create');
    });
})->middleware(['Validate'])->allowCrossDomain();

4. 通过postman访问测试效果

  • 先确定下,注释验证函数是否启用
/**
 * @doc('创建图书')
 * @route('','post')
 * @validate('CreateGroup')
 * @param('name','图书名称','require|graph|length:1,50')
 * @param('img','图书img','require|graph|length:1,16')
 * @return array
 */
public function create()
{
    return json(['msg'=>'创建成功'],200);
}
  • 确认中间件是否注册
<?php

return [
    // 默认中间件命名空间
    'default_namespace' => 'app\\http\\middleware\\',
    'Validate' => WangYu\Param::class,
];
  • 确认路由是否启用验证中间件
<?php
use think\facade\Route;

Route::group('', function () {
    Route::group('v1', function () {
        // 查询所有图书
        Route::post('book/', 'api/v1.Book/create');
    });
})->middleware(['Validate'])->allowCrossDomain();
  • 最后确认下验证器是否创建

正确输出

  • 不带参数,测试错误输出

错误输出

  • 带上正确参数,测试验证

正确输出

版权信息

TRR 遵循 MIT 开源协议发布,并提供免费使用。

本项目包含的第三方源码和二进制文件之版权信息另行标注。

版权所有Copyright © 2006-2019 by TRR

All rights reserved。