Skip to content

一个基于tp5.1的项目基础应用,支持全局异常处理,支持类似AOP切面验证层

License

Notifications You must be signed in to change notification settings

chenduoduo007/cdd_tp51

Repository files navigation

一个基于tp5.1的项目基础应用,支持全局异常处理,支持类似AOP切面验证层

支持全局异常处理,异常报错,返回json,而不是html

使用ThinkPHP的小伙伴都知道,如果遇到服务报错,直接就返回了HTML代码

如果是做API接口的时候,报错后,直接返回HTML,对移动端的小伙伴来说,这个是很不友好的

如果是能返回json,那移动端的小伙伴就很容易理解了

tp5开始支持重写异常,重写Exception的handle方法

首先修改config目录下的app.php,修改exception_handle的指定地址,添加重写handle的目录

这样子就可以重写tp5自带的异常,同时将异常返回改成json格式

支持类似AOP切面验证层

用户请求参数是不可靠的,所以,我们需要做一层验证,可是,很多验证都是相同的

怎么解决呢?

方法1:不验证了,反正可以和前端、移动端的小伙伴约好,让他们自己验证,验证完再传过来

方法2:每个接口都复制一份代码,哪里需要验证,复制到哪里

方法3:抽出来做成方法,哪里需要验证,就写在哪里

方法4:tp都已经有vaildate了,直接用这个啦

为了,少写重复代码,再加上tp5开始,支持vaildate类

熟悉Java的小伙伴,知道这种就直接用注解,php没注解呀

熟悉python的小伙伴,知道这种直接用装饰器,php也没现成的装饰器

在tp5中,可以重写Validate的goCheck方法和getDataByRule方法,可以命名为BaseVaildate

然后在重新定义各个验证层,需要继承我们自己重写的BaseVaildate类

如果需要验证的时候,就直接调用自己写的验证方法就可以了

如:(new IdValidate())->goCheck();

About

一个基于tp5.1的项目基础应用,支持全局异常处理,支持类似AOP切面验证层

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published