Maison  >  Article  >  cadre php  >  Paramètres de la page d'erreur yii 500

Paramètres de la page d'erreur yii 500

藏色散人
藏色散人original
2020-01-11 10:57:552331parcourir

Paramètres de la page d'erreur yii 500

Paramètres de la page d'erreur yii 500

Erreur 500 personnalisée yii2

Étant donné que le projet souhaite ajouter une surveillance d'alerte précoce, l'une d'entre elles implique 500 erreurs dans le programme. Ces niveaux d'erreur sont relativement élevés, il est donc nécessaire de capturer ces erreurs. D'ailleurs, j'ai personnalisé un style de vue

<.>Apprentissage recommandé :

yii framework

Après avoir lu ce blog, je sais comment personnaliser ma propre page d'erreur : http://tech.lubanr.com/2015/12/12/ Mécanisme de gestion des erreurs et des exceptions du framework yii2-0/

Si nous devons personnaliser notre propre méthode de gestion des exceptions, tout ce que nous avons à faire est d'hériter de yiibaseErrorHandler, d'écrire une renderException personnalisée et enfin de personnaliser notre propre errorHandler en $ config

1. Créez un ErrorHandler, héritez de cette classe abstraite yiibaseErrorHandler, puis définissez la méthode abstraite dans cette classe parent

<?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);
        }
    }
}

Créez un fichier de vue : @. 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. Modifiez le fichier de configuration de l'application : @app/config/main.php

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

Modifiez les trois endroits ci-dessus, vous pouvez atteindre l'objectif souhaité, l'effet est le suivant :

Page d'erreur 500 :

Paramètres de la page derreur yii 500

Page d'erreur 404 :

Paramètres de la page derreur yii 500

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn