tp5项目改造 - 1 (接口全局异常处理)

作者:yiqiu,最后更新时间:2020-03-26 11:59,访问:336

原文:http://www.upwqy.com/details/246.html



1 项目下载  http://www.thinkphp.cn/down.html


2 在应用目下 创建 lib/exception 目录


格式如下

image.png




2.1   其中 ExceptionHandler.php 文件 未异常处理类 继承与  

think\exception\Handle


代码如下


<?php
namespace app\lib\exception;

use think\exception\Handle;

class ExceptionHandler extends Handle {
  private $code;
  private $msg;
  // 需要返回客户端当前请求的URL
  public function render(\Exception $e) {

       if ($e instanceof BaseException) {
           // 如果是自定义异常

           $this->code = $e->code;
           $this->msg = $e->msg;
       }else{

           if (config('app_debug')) {
               return parent::render ( $e );
           } else {
               $this->code = 500;
               $this->msg = $e->getMessage();
//                $this->msg = '哎呀,出错了!';
           }
       }

       $header['Access-Control-Allow-Origin']  = '*';
       $header['Access-Control-Allow-Headers'] = 'X-Requested-With,Content-Type,device_type,token,api_version';
       $header['Access-Control-Allow-Methods'] = 'GET,POST,PATCH,PUT,DELETE,OPTIONS';
     $result = [
           'code' => $this->code,
           'msg' =>  $this->msg,
           'error_msg' =>  $e->getMessage(),
     ];

       return json($result,200,$header);
  }


}



2.2 BaseException.php 未自定义异常处理类


<?php
/**
* Created by PhpStorm.
* User: mac
* Date: 2017/5/11
* Time: 09:01
*/

namespace app\lib\exception;
use think\Exception;

class BaseException extends Exception
{
   //HTTP 状态码 400 200
   public $code = 204;
   public $msg = '参数错误';

   public function __construct($param = [])
   {
       if(is_string($param)){
           $this->msg = $param;
       }else if ( is_array($param) ){

           if(array_key_exists('code',$param)){
               $this->code = $param['code'];
           }
           if(array_key_exists('msg',$param)){
               $this->msg = $param['msg'];
           }
       }

   }

}


2.3  ParameterException.php 为参数异常处理



<?php
/**
* Created by PhpStorm.
* User: [一秋]
* Date: 2018/5/2
* Time: 9:37
* Desc: 成功源于点滴
*/

namespace app\lib\exception;
class ParameterException extends BaseException
{
   public $code = 204;
   public $msg = '参数错误';
}


上一篇: tp5项目改造 - 2 (接口基类)
下一篇: 微信公众号 接口配置信息 签名校验