Yii2自定義報錯信息頁面

Yii原始的調試模式會看到很多我們代碼裏的信息
這些信息暴露在外邊相當於我們的網站正在裸奔
如何自定義開發信息

1、配置/config/web.php

'errorHandler' => [
    // 'errorAction' => 'site/error',
    // 'maxSourceLines' => 2 //原報錯頁面基礎上只顯示2行錯誤信息
    'class' => 'app\components\ErrorHandler',//我們自定義的報錯信息
],

2、自己寫ErrorHandler.php文件

新建文件夾components並在該文件夾下新建ErrorHandler.php文件

<?php
 
namespace app\components;
 
class ErrorHandler extends \yii\base\ErrorHandler
{
    /**
     * Renders the exception.
     * @param \Exception $exception the exception to be rendered.
     */
    protected function renderException($exception)
    {
        $title = $exception->getMessage();
        $message = $exception->getFile().":".$exception->getLine();
        $code = $exception->getCode();
        $data = [
            'title' => $title,
            'message' => $message,
            'code' => $code
        ];
        if (YII_DEBUG) {//調試模式下顯示錯誤信息
            echo '<p style="text-align:center">'.$title.'</p>';//錯誤原因
            echo '<p>'.$message.'</p>';//錯誤所在地方
            echo '<p>'.$code.'</p>';//錯誤碼
        }
        //生產環境下僅顯示一下文字
        echo "<h1 style='text-align:center'>服務器出錯了😥</h1>";
        echo "<h2 style='text-align:center'>稍等一下 程序員正火速趕來~~❤️❤️</h2><br>";
        echo "<img src='/img/bug_bug.jpg' style='margin-left:35%;width:30%'>";

        if (YII_DEBUG) {//調試模式下顯示錯誤信息
            \Yii::$app->end();
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章