黄p网站_在线看中文字幕_亚洲电影免费观看_成人激情视频_欧美成视频_中国av在线

Trigger

EasySwoole\EasySwoole\Trigger觸發器,用于主動觸發錯誤或者異常而不中斷程序繼續執行。

使用

攔截異常并記錄

比如:在控制器的OnException中:

protected function onException(\Throwable $throwable): void
{
    //攔截錯誤進日志,使控制器繼續運行
    \EasySwoole\EasySwoole\Trigger::getInstance()->throwable($throwable);
    $this->writeJson(\EasySwoole\Http\Message\Status::CODE_INTERNAL_SERVER_ERROR, null, $throwable->getMessage());
}

直接記錄

\EasySwoole\EasySwoole\Trigger::getInstance()->error('test error');

回調接管注冊

通常出現重大異常(支付失敗等)需要進行報警處理,在全局的mainServerCreate事件中進行注冊:

\EasySwoole\EasySwoole\Trigger::getInstance()->onException()->set('notify',function (\Throwable $throwable){
    // 自行實現通知代碼
});

\EasySwoole\EasySwoole\Trigger::getInstance()->onError()->set('notify',function ($msg){
    // 自行實現通知代碼
});

自定義處理類

需要開發者實現EasySwoole\Trigger\TriggerInterface

<?php

namespace App\Exception;

use EasySwoole\EasySwoole\Logger;
use EasySwoole\Trigger\Location;
use EasySwoole\Trigger\TriggerInterface;

class TriggerHandel implements TriggerInterface
{
    public function error($msg, int $errorCode = E_USER_ERROR, Location $location = null)
    {
        Logger::getInstance()->console('這是自定義輸出的錯誤:'.$msg);
        // TODO: Implement error() method.
    }

    public function throwable(\Throwable $throwable)
    {
        Logger::getInstance()->console('這是自定義輸出的異常:'.$throwable->getMessage());
        // TODO: Implement throwable() method.
    }
}

initialize事件中注入自定義trigger處理器:

\EasySwoole\EasySwoole\Trigger::getInstance(new \App\Exception\TriggerHandel());

主站蜘蛛池模板: 日韩在线视频一区 | 精品国产乱码久久久久久88av | 亚洲成人久久久 | 亚洲综合二区 | 国内精品久久久久 | 欧美激情精品久久久久 | 国产精品久久久久久久免费大片 | 亚洲视频在线观看 | 日韩91| 91色在线| 亚洲欧美影院 | 毛片毛片毛片毛片毛片毛片 | 一区二区免费看 | 日韩欧在线| 日韩av福利 | 欧美日韩精品一区二区在线播放 | 亚洲中字在线 | 精品国产一区二区三区久久久蜜 | 日韩一区二区三区在线视频 | 美女久久一区 | 亚洲成av人片在线观看 | 天堂久久久久 | 玖玖精品 | 亚洲天天操 | 欧美成人一区二区三区片免费 | 日本在线免费观看 | 国产一区2区 | 欧美一级片在线 | 欧洲成人午夜免费大片 | 综合伊人久久 | 成人黄色片在线观看 | 污片在线免费看 | 国产精品久久久久久久久久久久 | 91视频在线 | 久久九九视频 | 色综合天天综合网国产成人网 | 一级黄色录像视频 | 最新国产在线视频 | 性国产xxxx乳高跟 | 亚洲激情一区 | 成人免费一区二区三区视频网站 |