最近对项目进行了重构,将以前诟病的代码全部删了,重新写了,这里介绍下Lumen里面如何简单的拦截掉所有错误,达到“上报”和“错误码”的功能。
了解Lumen的错误处理文件及函数
文档地址:https://d.laravel-china.org/docs/5.4/errors#introduction
从文章里可以看出Lumen和Laravel的Exception处理,都可以在App\Exceptions\Handler
中进行自定义
然后查看这个文件,会发现这个文件包含Report
和Rendor
两个方法,具体方法详见文档
错误码定义
新建一个Responser.php
,内容大致包括:错误码定义的数据(也可用.json文件替代)
、成功数据处理
、错误处理
三个方法。
注:success
和error
的 if count() > 0
是为了对当数据集返回为空时候的处理,具体百度下json_encode
的预定义常量:JSON_FORCE_OBJECT
触发异常
在我的项目中,项目分为了Controller
、Service
、Model
三层,触发异常的处理,我是放在Service层的,Service层是对业务逻辑进行运算的,所以各种错误应该由这里报出
Controller层只需要无脑调用方法即可
异常处理
修改render
方法,对Exception
做一个判断,如图:
别问我在哪里找的这些方法,我也是看源码看到的,没找到哪里有文档 (/笑哭)