Heim >PHP-Framework >YII >Einstellungen für die YII 500-Fehlerseite

Einstellungen für die YII 500-Fehlerseite

藏色散人
藏色散人Original
2020-01-11 10:57:552374Durchsuche

Einstellungen für die YII 500-Fehlerseite

yii 500-Fehlerseiteneinstellungen

yii2 benutzerdefinierter 500-Fehler

Da das Projekt eine Frühwarnüberwachung hinzufügen möchte, betrifft einer davon 500 Fehler innerhalb des Programms. Solche Fehlerquoten sind relativ hoch, daher ist es notwendig, solche Fehler zu erfassen und einen Ansichtsstil anzupassen

Empfohlenes Lernen: yii-Framework

Nachdem ich diesen Blog gelesen habe, weiß ich, wie ich meine eigene Fehlerseite anpassen kann: http://tech.lubanr.com/2015/12/12/ Fehler- und Ausnahmebehandlungsmechanismus des yii2-0-Frameworks/

Wenn wir unsere eigene Ausnahmebehandlungsmethode anpassen müssen, müssen wir lediglich yiibaseErrorHandler erben, eine benutzerdefinierte renderException schreiben und schließlich unseren eigenen errorHandler in $config

1. Erstellen Sie ErrorHandler, erben Sie diese abstrakte yiibaseErrorHandler-Klasse und definieren Sie dann die abstrakte Methode in dieser übergeordneten Klasse

<?php
namespace common\component\exception;
/**
 * User: szliugx@gmail.com
 * Date: 2016/9/20
 * Time: 14:24
 */
use yii;
use yii\base\ErrorHandler as BaseErrorHandler;
use common\component\earlywarning\EarlyWarning;
class ErrorHandler extends BaseErrorHandler
{
    public $errorView = &#39;@app/views/errorHandler/error.php&#39;;
    public function renderException($exception)
    {
        if(Yii::$app->request->getIsAjax()){
            exit( json_encode( array(&#39;code&#39; =>$exception->getCode(),&#39;msg&#39;  =>$exception->getMessage()) ));
        }else{
            //将500的代码,发送监控预警
            if(!empty($exception->getCode()) && $exception->getCode() ==8){
                $params = [];
                $params[&#39;projectName&#39;] = "oct-youban";
                $params[&#39;level&#39;] = 5;
                $params[&#39;title&#39;] = "500:".$exception->getMessage();
                $params[&#39;value&#39;] = $exception->getCode();
                $params[&#39;message&#39;] = $exception->getFile().":".$exception->getLine();
                $params[&#39;bizcode&#39;] = 8;
                $params[&#39;subcode&#39;] = 8001;
                EarlyWarning::WarninApi($params);
            }
            echo  Yii::$app->getView()->renderFile($this->errorView,[&#39;exception&#39; => $exception,],$this);
        }
    }
}

2. Erstellen Sie eine Ansichtsdatei: @app/views/errorHandler/ error.php

<?php
/**
 * User: szliugx@gmail.com
 * Date: 2016/9/20
 * Time: 15:23
 */
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="format-detection" content="telephone=no">
    <meta http-equiv="Expires" content="-1">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Pragma" content="no-cache">
    <title><?php if(!empty($exception->getCode())&&($exception->getCode() == 8)){echo "出错啦";}else{ echo $exception->getMessage();}?></title>
    <link href="/css/error.css" rel="stylesheet" 0="frontend\assets\AppAsset">
</head>
<body>
<div>
    <div class="status-icon icon-desk"></div>
    <div>
        <p><?php if(!empty($exception->getCode())&&($exception->getCode() == 8)){echo "出错啦";}else{ echo $exception->getMessage();}?></p>
    </div>
</div>
</body>
</html>

3. Ändern Sie die Anwendungskonfigurationsdatei: @app/config/main.php

        &#39;errorHandler&#39; => [
            //&#39;errorAction&#39; => &#39;site/error&#39;,
            &#39;class&#39; => &#39;common\component\exception\ErrorHandler&#39;,
        ],

Ändern Sie die oben genannten drei Stellen , Sie können den gewünschten Zweck erreichen, der Effekt ist wie folgt:

500-Fehlerseite:

Einstellungen für die YII 500-Fehlerseite404-Fehlerseite:

Das obige ist der detaillierte Inhalt vonEinstellungen für die YII 500-Fehlerseite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn