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

Paramètres de la page d'erreur yii 500

藏色散人
Libérer: 2020-01-11 10:57:55
original
2389 Les gens l'ont consulté

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);
        }
    }
}
Copier après la connexion

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>
Copier après la connexion

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;,
        ],
Copier après la connexion

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!

Étiquettes associées:
yii
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal