讓whoops幫我們告別ThinkPHP6的異常頁面
春節(jié)期間熟悉了TP6, 也寫了一個TP6的博客程序,但系統(tǒng)的異常頁面實在另外頭疼,很多時候無法查看到是哪行代碼出的問題。
所以就特別的想把whoops引進(jìn)來,經(jīng)過一系列的研究,終于找到了解決的辦法:
1. 通過composer安裝whoops
運行命令: composer require filp/whoops
注意:composer引進(jìn)的文件如果有語法錯誤,需要提前把語法錯誤處理好才能進(jìn)行安裝,否則一直報錯。
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. 看看結(jié)果吧
我在博客首頁的index方法中寫入了一個不存在的函數(shù):
刷新頁面一看, 妥了
OK. 熟悉的whoops又回來了.
4. 后記
為了在thinkphp6中使用whoops, 我又認(rèn)真的看了一遍PHP7中的異常機制,終于是把whoops給引進(jìn)來了.
在學(xué)習(xí)異常處理的過程中, 我也發(fā)現(xiàn)在PHP7中應(yīng)該使用try()catch()來進(jìn)行業(yè)務(wù)處理, 而不是再使用if()else()了.
后續(xù)我會單獨寫篇文章來講述我在研究PHP7的異常中獲得的經(jīng)驗.
以上就是讓whoops幫我們告別ThinkPHP6的異常頁面的詳細(xì)內(nèi)容,更多關(guān)于whoops替換ThinkPHP6的異常頁的資料請關(guān)注腳本之家其它相關(guān)文章!
- thinkphp6如何使用中間件記錄行為日志
- 關(guān)于Thinkphp6的日志問題
- Thinkphp6.0中間件的具體使用
- ThinkPHP6.0前置、后置中間件區(qū)別
- thinkphp6使用mysql悲觀鎖解決商品超賣問題的實現(xiàn)
- phpstorm遠(yuǎn)程連接服務(wù)器并實時更新發(fā)布代碼(thinkphp6.0.7)
- ThinkPHP6.0 重寫URL去掉Index.php的解決方法
- ThinkPHP6通過Ucenter實現(xiàn)注冊登錄的示例代碼
- ThinkPHP6.0如何利用自定義驗證規(guī)則規(guī)范的實現(xiàn)登陸
- 基于thinkphp6.0的success、error實現(xiàn)方法
- 使用composer安裝使用thinkphp6.0框架問題【視頻教程】
- 寶塔中ThinkPHP框架使用Redis的一系列教程
- thinkphp6中Redis 的基本使用方法詳解
相關(guān)文章
PHP二維關(guān)聯(lián)數(shù)組的遍歷方式(實例講解)
下面小編就為大家?guī)硪黄狿HP二維關(guān)聯(lián)數(shù)組的遍歷方式(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10淺談php中變量的數(shù)據(jù)類型判斷函數(shù)
下面小編就為大家?guī)硪黄獪\談php中變量的數(shù)據(jù)類型判斷函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03PHP定時執(zhí)行任務(wù)實現(xiàn)方法詳解(Timer)
這篇文章主要介紹了PHP定時執(zhí)行任務(wù)實現(xiàn)方法詳解,定時任務(wù)在web應(yīng)用程序中比較常見,實現(xiàn)定時任務(wù)主要有兩種方案:1)使用Crontab命令,2)配合使用ignore_user_abort()和set_time_limit(),有需要的朋友可以來借鑒下。2015-07-07thinkphp5使用phpmail發(fā)送qq郵件的實現(xiàn)過程
這篇文章主要給大家介紹了thinkphp5使用phpmail發(fā)送qq郵件的實現(xiàn)過程,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價值,感興趣的小伙伴可以自己動手嘗試一下2023-10-10PHP命令空間namespace及use的用法小結(jié)
命名空間一個最明確的目的就是解決重名問題,PHP中不允許兩個函數(shù)或者類出現(xiàn)相同的名字,否則會產(chǎn)生一個致命的錯誤。這篇文章主要介紹了PHP命令空間namespace及use的用法實踐總結(jié),需要的朋友可以參考下2017-11-11PHP封裝分頁函數(shù)實現(xiàn)文本分頁和數(shù)字分頁
本文主要是給大家分享了一段PHP的封裝好的分頁函數(shù),可以實現(xiàn)文本分頁和數(shù)字分頁兩種形式,非常的實用,有需要的朋友可以參考下2014-10-10利用PHP腳本在Linux下用md5函數(shù)加密字符串的方法
這篇文章主要介紹了利用PHP腳本在Linux下用md5函數(shù)加密字符串的方法,只需Linux系統(tǒng)中安裝過PHP然后在命令行中操作文中示例即可,需要的朋友可以參考下2015-06-06thinkphp5.1驗證碼及驗證碼驗證功能的實現(xiàn)詳解
這篇文章主要介紹了thinkphp5.1驗證碼及驗證碼驗證功能的實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01Swoole?webSocket消息服務(wù)系統(tǒng)代碼設(shè)計詳解
這篇文章主要為大家介紹了Swoole?webSocket消息服務(wù)系統(tǒng)代碼設(shè)計詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03