日韩在线观看-日韩在线成人-日韩在线不卡视频-日韩在线不卡视频-国产精品99-国产精品99

Trigger

EasySwoole\EasySwoole\Trigger觸發(fā)器,用于主動觸發(fā)錯誤或者異常而不中斷程序繼續(xù)執(zhí)行。

使用

攔截異常并記錄

比如:在控制器的OnException中:

protected function onException(\Throwable $throwable): void
{
    //攔截錯誤進日志,使控制器繼續(xù)運行
    \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');

回調(diào)接管注冊

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

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

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

自定義處理類

需要開發(fā)者實現(xiàn)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());

主站蜘蛛池模板: 林正英电影大全| 80年代欧美动画片| 尹馨演过的三部电影| 我被最想被拥抱的人威胁了| 林一个人简介资料| 银行资信证明| 电影院线| 哈尔的移动城堡日语版在线播放| 心跳源计划演员表| 爱情天梯| 刀郎歌曲简谱| 林莉娴| 保镖电影大全免费| 庆余年2演员表全部员表| 熊欣欣个人资料| 墨雨云间电视剧免费播放| 夜的命名术动漫| 被打屁股作文| 脚心视频| 踢车帮| 印度电影《情罪》免费观看中文| 团结力量歌词大全图片| 白雪公主国语免费观看中文版| 哑妻| 王艺潼| 囧妈电影| 徐一航的电视剧叫什么| tbbt| 《隐秘而伟大》电视剧| 循环小数除法50道| 一线钟情 电视剧| 预备党员季度思想汇报| 安渡| 首映式| 《鱼我所欲也》原文及译文| 希比·布拉奇克| 尹馨演过的三部电影| 结婚十年电视剧| 我们的日子电视剧演员表| 定型枕什么时候能给宝宝用| starstruck|