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