【thinkphp5】使用tp5開發api接口 定義全局異常處理

 

1 新建文件夾以及文件php

路徑: /application/lib/exception/ExceptionHandler.php

並鍵入如下代碼
json

<?php
namespace app\lib\exception;

use think\Exception;
use think\config;
use think\exception\Handle;
/**
 * 自定義異常類
 */
class ExceptionHandler extends Handle {
    /**
     * http狀態碼
     * @var unknown
     */
    public $httpCode = 500;

    public function render(\Exception $e){
        $debug_status = config("app_debug");
        if($debug_status){
            return parent::render($e);
        }else{
            return $this->show(2, $e->getMessage(), [], $this->httpCode);
        }
    
    }

    /**
     * 通用化API接口數據輸出
     * @param int $status  操做成功仍是失敗: 1 成功 2 失敗
     * @param int $errorcode 業務錯誤狀態碼
     * @param string $msg 信息提示
     * @param [] $result 數據 
     * @param int $httpCode http狀態碼
     */
    public function show($status, $message ,$data = [] ,$httpCode = 200)
    {
        $data =  [
            'status' => $status,
            'errorcode'=>'100000',
            'msg' => $message,
            'result' =>$data
        ];

        return json($data, $httpCode);

    }
}

爲了便於調試。引入 config文件, debug開啓時候。會正常顯示錯誤信息。。debug關閉。則是json數據app

 

2 修改 config.php中的 exception_handle , 接管異常處理this

// 異常處理handle類 留空使用 \think\exception\Handle
  'exception_handle'       => '\app\lib\exception\ExceptionHandler',
相關文章
相關標籤/搜索