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