lin-cms-tp / param-core
LinCms TP 的反射验证器核心类,含参数中间件封装,路由参数验证中间件,方法注释参数提取器,基于`wangyu/reflex-core`扩展
0.0.1
2019-08-15 09:21 UTC
Requires
- php: >=7.1.0
- wangyu/reflex-core: >=0.0.1
This package is auto-updated.
Last update: 2024-10-16 19:29:39 UTC
README
LinCms TP 的反射验证器核心类,含参数中间件封装,路由参数验证中间件,方法注释参数提取器,基于wangyu/reflex-core
扩展
composer
安装
composer require lin-cms-tp/validate-core
默认参数
反射参数验证
- 需要在系统
config
配置middleware.php
<?php return [ // 默认中间件命名空间 'default_namespace' => 'app\\http\\middleware\\', 'linRouteParam' => LinCmsTp\Param::Class ];
- 需要在接口类
注释
设置@middleware
/** * Class Book * @route('v1/book') * @middleware('linRouteParam') * @package app\api\controller\v1 */ class Book {}
配置方法注释参数验证,有两种方式
使用 @validate 模型验证器
- 例如:
@validate('LoginForm')
相当于调用的\app\api\validate\user\LoginForm
去验证
/** * 账户登陆 * @route('cms/user/login','post') * @param Request $request * @validate('LoginForm') * @return array * @throws \think\Exception */ public function login(Request $request) { (new LoginForm())->goCheck(); $params = $request->post(); $user = LinUser::verify($params['nickname'], $params['password']); $result = Token::getToken($user); logger('登陆领取了令牌', $user['id'], $user['nickname']); return $result; }
- 例如:
@validate('\app\api\validate\user\LoginForm')
相当于调用的\app\api\validate\user\LoginForm
去验证
这种方式只是为了完成某种特定的验证模型路径开发的,以
/
开头或者\\
,都会当作验证器类的完整命名空间,不会再去目录下检测类是否存在
/** * 账户登陆 * @route('cms/user/login','post') * @param Request $request * @validate('\app\api\validate\user\LoginForm') * @return array * @throws \think\Exception */ public function login(Request $request) { (new LoginForm())->goCheck(); $params = $request->post(); $user = LinUser::verify($params['nickname'], $params['password']); $result = Token::getToken($user); logger('登陆领取了令牌', $user['id'], $user['nickname']); return $result; }
使用 @param 参数验证器
'参数规则' 对应TP的验证规则,例如:@param('id','ID','require|max:1000|min:1')
/** * 查询指定bid的图书 * @route('v1/book/:bid','get') * @param Request $bid * @param('bid','bid的图书','require') * @return mixed */ public function getBook($bid) { $result = BookModel::get($bid); return $result; }
联系我们
- QQ:
354007048
- Email:
china_wangyu@aliyun.com