一、支持全局异常处理,异常报错,返回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(); 项目地址:https://github.com/chenduoduo007/cdd_tp51 麻烦帮忙star一下