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 = '@app/views/errorHandler/error.php'; public function renderException($exception) { if(Yii::$app->request->getIsAjax()){ exit( json_encode( array('code' =>$exception->getCode(),'msg' =>$exception->getMessage()) )); }else{ //将500的代码,发送监控预警 if(!empty($exception->getCode()) && $exception->getCode() ==8){ $params = []; $params['projectName'] = "oct-youban"; $params['level'] = 5; $params['title'] = "500:".$exception->getMessage(); $params['value'] = $exception->getCode(); $params['message'] = $exception->getFile().":".$exception->getLine(); $params['bizcode'] = 8; $params['subcode'] = 8001; EarlyWarning::WarninApi($params); } echo Yii::$app->getView()->renderFile($this->errorView,['exception' => $exception,],$this); } } }
<?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>
'errorHandler' => [ //'errorAction' => 'site/error', 'class' => 'common\component\exception\ErrorHandler', ],
Ändern Sie die oben genannten drei Stellen , Sie können den gewünschten Zweck erreichen, der Effekt ist wie folgt:
500-Fehlerseite:
404-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!