TP5 自定义错误类

application目录下创建单独文件夹exception

在exception目录下创建controller

在controller下创建ApiHandleException.php

<?php

namespace app\exception\controller;

use app\SendWxtempMsg;
use think\exception\Handle;

Class ApiHandleException extends Handle
{

    /**
     * http状态码
     */
    public $httpCode = 500;

    public function render(\Exception $e)
    {
        return $this->show($e,$e->getMessage(), $this->httpCode);
    }


    /**
    通用化API接口数据输出
    @param int $status 业务状态码
    @param string $message 信息提示
    @param int $httpCode http状态码
     */
    public function show($e,$message ,$httpCode = 200)
    {
        $data =  [
            'message' => $message,
        ];
        return json($data, $httpCode);
         //下边代码为微信公众帐号模板消息推送 
        /*$ip = request()->ip();

        $url = 'http://apis.juhe.cn/ip/ipNew?key=xxxxxxxx&ip='.$ip;

        $http = $this->httpGet($url);

        $result = json_decode($http,true);

        $template = array(
            "touser" => 'xxxx',
            'url'=> 'http://www.xxx.com/exception/errors/index?error='.$e,
            "template_id" => "xxxx",
            'topcolor' => '#ccc',
            'data' => array('first' => array('value' => "xxx报错了",
                'color' => "#101BF4",),
                'keyword1' => array('value' => 'xxx系统',
                    'color' => '#743A3A'
                ),
                'keyword2' => array('value' => $message ,
                    'color' => '#743A3A'
                ),
                'keyword3' => array('value' => '',
                    'color' => '#743A3A'
                ),
                'keyword4' => array('value' => date('Y-m-d H:i:s',time()),
                    'color' => '#743A3A'
                ),
                'remark' => array('value' =>$result['result']['Country'].'|'.$result['result']['Province'].'|'.$result['result']['City'].'|'.$result['result']['Isp'],
                    'color' => '#3A16EE'
                ),
            )
        );
          $SendWxtempMsg = new SendWxtempMsg();

          $SendWxtempMsg->api_notice_increment($template);*/

        
    }
    public function httpGet($url)
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 1);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($curl, CURLOPT_URL, $url);
        $res = curl_exec($curl);
        curl_close($curl);
        return $res;
    }
}

在config里配置

app\exception\controller\ApiHandleException

OK完成

R XG

风影OvO, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA 4.0协议进行授权 | 转载请注明原文链接

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐