为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第4天 微信小程序电商实战-验证层

标签:
ThinkPHP

课程章节:构建验证层

课程讲师:7 七月

课程内容:

4-7 工欲善其事必先利其器

  1. 在 api 目录下创建文件夹 validate(验证层)

  2. validate 的每个验证器可以校验一类的验证规则,提高代码的复用性。使参数校验流程和逻辑变得更清晰

  3. 逐渐扩展验证层,当验证器的类库足够多时,还可以把Validate整个文件夹作为类库单独提取出来放到其他项目使用

  4. 封装的意义(思想):(工具)不仅可以在一个项目里被复用,还可以被多个项目复用

  5. 验证器基类 BaseValidate,继承 Validate,封装共用的验证逻辑

<?php

namespace app\api\validate;

use think\Exception;
use think\Request;
use think\Validate;

calss BaseValidate extends Validate
{
    public function goCheck()
    {
        /*
         * 1. 获取http传入的参数
         * 2. 对这些参数做检验
         */

        # 拿到Request实例对象
        $request = Request::instance();
        # 拿到Request所有参数
        $params = $request->param();

        # 调用继承的Validate类的验证方法
        $result = $this->check($params);
        # 对验证结果做处理,并返回结果给客户端
        if (!$result) {
            $error = $this->error;
            # 抛出异常中断请求
            throw new Exception($error);
            // todo 这里使用TP5默认异常处理,后期改全局异常处理
        } else {
            returun true;
        }
    }
}

验证类IDMustBePostiveInt 继承BaseValidate

class IDMustBePostiveInt extends BaseValidate

在Banner控制器调用验证层做拦截器

(new IDMustBePostiveInt())->gocheck();

BaseValidate

IDMustBePostiveInt

Banner

课程收获:

  1. 重点:全局验证层的构造

  2. 预习:全局异常处理和信息返回

  3. 思考:客户端的错误提示和开发人员的错误定位

  4. 学习:其他成熟的验证器类库的设计思想

  5. 拓展学习:中间件

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消