春節期間熟悉了TP6, 也寫了一個TP6的博客程式,但系統的例外頁面實在另外頭疼,很多時候無法查看到是哪行代碼出的問題,
所以就特別的想把whoops引進來,經過一系列的研究,終于找到了解決的辦法:
1. 通過composer安裝whoops
運行命令: composer require filp/whoops
注意:composer引進的檔案如果有語法錯誤,需要提前把語法錯誤處理好才能進行安裝,否則一直報錯,
2. 使用whoops接管tp6的例外處理
在/app/ExceptionHandle.php檔案的render()方法中加入如下代碼:
// 添加自定義例外處理機制
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方法中寫入了一個不存在的函式:

重繪頁面一看, 妥了

OK. 熟悉的whoops又回來了.
4. 后記
為了在thinkphp6中使用whoops, 我又認真的看了一遍PHP7中的例外機制,終于是把whoops給引進來了.
在學習例外處理的程序中, 我也發現在PHP7中應該使用try()catch()來進行業務處理, 而不是再使用if()else()了.
后續我會單獨寫篇文章來講述我在研究PHP7的例外中獲得的經驗.
也希望大家能繼續關注我的博客http://laoliu.pro
原文鏈接:http://laoliu.pro/php/6.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/80853.html
標籤:PHP
