abovesky / think-annotation-validate

dev-master 2019-10-09 10:19 UTC

This package is auto-updated.

Last update: 2024-09-09 21:10:18 UTC


README

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

安装

composer require abovesky/think-annotation-validate

快速入门

1. 在 middleware.php 中间件注册

文件地址:config/middleware.php

内容:

<?php

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

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

  • 函数说明
  • @validate 函数说明

@validate() 函数,需要在 application/api/validate 目录下创建验证器。 或者:创建 config/validate.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);
}