告別ThinkPHP6的異常頁面, 讓咱們來擁抱whoops吧

春節期間熟悉了TP6, 也寫了一個TP6的博客程序,但系統的異常頁面實在另外頭疼,不少時候沒法查看到是哪行代碼出的問題。php

因此就特別的想把whoops引進來,通過一系列的研究,終於找到了解決的辦法:html

1. 經過composer安裝whoops

運行命令:  composer require filp/whoopsthinkphp

注意:composer引進的文件若是有語法錯誤,須要提早把語法錯誤處理好才能進行安裝,不然一直報錯。app

2. 使用whoops接管tp6的異常處理

在/app/ExceptionHandle.php文件的render()方法中加入以下代碼:composer

// 添加自定義異常處理機制
if (ENV('APP_DEBUG')) {
    // 若是是HttpResponseException異常則原樣輸出
    // JUMP插件裏的success,error和result方法均返回的是HttpResponseException異常
    if ($e instanceof HttpResponseException) {
        return $e->getResponse();
    }

    // Whoops 接管請求異常
    $whoops = new \Whoops\Run;
    $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler());
    return Response::create(
        $whoops->handleException($e),
        'html',
        500
    );
}

以下圖: 函數

老劉博客

3. 看看結果吧

我在博客首頁的index方法中寫入了一個不存在的函數:oop

老劉博客

刷新頁面一看, 妥了 學習

老劉博客

OK. 熟悉的whoops又回來了.ui

4. 後記

爲了在thinkphp6中使用whoops, 我又認真的看了一遍PHP7中的異常機制,終因而把whoops給引進來了.spa

在學習異常處理的過程當中, 我也發如今PHP7中應該使用try()catch()來進行業務處理, 而不是再使用if()else()了.

後續我會單獨寫篇文章來說述我在研究PHP7的異常中得到的經驗.

也但願你們能繼續關注個人博客http://laoliu.pro

原文連接:http://laoliu.pro/php/6.html

相關文章
相關標籤/搜索