讓whoops幫我們告別ThinkPHP6的異常頁(yè)面
春節(jié)期間熟悉了TP6, 也寫了一個(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方法中寫入了一個(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ú)寫篇文章來(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悲觀鎖解決商品超賣問(wèn)題的實(shí)現(xiàn)
- phpstorm遠(yuǎn)程連接服務(wù)器并實(shí)時(shí)更新發(fā)布代碼(thinkphp6.0.7)
- ThinkPHP6.0 重寫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連接mssql數(shù)據(jù)庫(kù)的幾種方法
數(shù)據(jù)庫(kù)查詢不外乎4個(gè)步驟,1、建立連接。2、輸入查詢代碼。3、建立查詢并取出數(shù)據(jù)。4、關(guān)閉連接。 php連接mssql數(shù)據(jù)庫(kù)有幾個(gè)注意事項(xiàng),尤其mssql的多個(gè)版本、32位、64位都有區(qū)別。2013-02-02
YII2框架實(shí)現(xiàn)表單中上傳單個(gè)文件的方法示例
這篇文章主要介紹了YII2框架實(shí)現(xiàn)表單中上傳單個(gè)文件的方法,結(jié)合實(shí)例形式分析了YII2框架表單提交與文件上傳相關(guān)操作技巧,需要的朋友可以參考下2020-03-03
php如何把表單內(nèi)容提交到數(shù)據(jù)庫(kù)
這篇文章主要介紹了php如何吧表單內(nèi)容提交到數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
thinkPHP實(shí)現(xiàn)的聯(lián)動(dòng)菜單功能詳解
這篇文章主要介紹了thinkPHP實(shí)現(xiàn)的聯(lián)動(dòng)菜單功能,結(jié)合實(shí)例形式分析了thinkPHP聯(lián)動(dòng)菜單的實(shí)現(xiàn)步驟與具體操作技巧,需要的朋友可以參考下2017-05-05
PHP實(shí)現(xiàn)支付寶即時(shí)到賬功能
這篇文章主要為大家詳細(xì)介紹了PHP實(shí)現(xiàn)支付寶即時(shí)到賬功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12

