Php+debugbar+api,Lumen/Laravel调试API接口利器laravel-debugbar
Laravel、Lumen打印sql每次都要在手動(dòng)加調(diào)試代碼挺麻煩的。本文主要介紹另一個(gè)調(diào)試神器barryvdh/laravel-debugbar
先講一下效果。可以調(diào)試帶頁(yè)面的接口,也可以調(diào)試單純的json api接口。
圖一:請(qǐng)求的接口列表,可以根據(jù)一些條件進(jìn)行過(guò)濾。紅色劃線的部分是我自己修改composer保增加上去的選項(xiàng),后面一起放出composer倉(cāng)庫(kù)鏈接。
圖二、查看異常(就不用到服務(wù)器看日志文件了)
圖三、打印sql(所有sql一目了然)
還有其他幾個(gè)面板,就不截圖了。
安裝步驟:
1、安裝composer包
# 原版composer包,請(qǐng)求接口列表沒(méi)有我圖一劃線那幾個(gè)篩選項(xiàng)
composer require barryvdh/laravel-debugbar
composer require barryvdh/laravel-debugbar --dev //僅開(kāi)發(fā)環(huán)境安裝
# 我修改的過(guò)的composer包
composer require evan766/laravel-debugbar
composer require evan766/laravel-debugbar --dev //僅開(kāi)發(fā)環(huán)境安裝
2、注冊(cè)服務(wù)提供者。該composer包同同時(shí)支持laravel和lumen,如果是lumen框架使用,注冊(cè)的服務(wù)提供者要換成lumen的服務(wù)提供者
#bootstrap/app.php
if (env("APP_ENV") != "production" && env("APP_DEBUG") === true) {
$app->register(BarryvdhDebugbarLumenServiceProvider::class);
}
3、修改配置文件。將包中的debugbar.php配置文件放到Lumen項(xiàng)目的config目錄。
注意些以下幾個(gè)配置:
#是否啟用監(jiān)聽(tīng)調(diào)試,總開(kāi)關(guān),配置成 true開(kāi)啟
"enabled" => env("DEBUGBAR_ENABLED", null),
# 將調(diào)試頁(yè)面注入到你項(xiàng)目的運(yùn)行的一個(gè)view頁(yè)面,在右下角出來(lái)一個(gè)調(diào)試標(biāo)
"inject" => true,
4、修改app/Exceptions/Handler.php,所有異常加入到debugbar收集的信息中
public function report(Exception $e)
{//如果開(kāi)發(fā)環(huán)境并且打開(kāi)調(diào)試模式,將異常加入到debugbar調(diào)試工具中
if (config("app.env") != "production" && env("APP_DEBUG") === true) {
debugbar()->addThrowable($e);
}
parent::report($e);
}
4、特別提示,對(duì)于沒(méi)有頁(yè)面的純api接口的調(diào)試。單獨(dú)定義一個(gè)路由渲染一個(gè)給debugbar注入調(diào)試信息的view頁(yè)面。然后你從任意地方(postman、app、前段項(xiàng)目)請(qǐng)求接口,點(diǎn)開(kāi)右下角的調(diào)試按鈕,通過(guò)篩選項(xiàng)過(guò)濾出你要查看的api請(qǐng)求就行。
可以添加一個(gè)單獨(dú)的路由文件
$router->get("debugbar", function() {if (env("APP_ENV") != "production" && env("APP_DEBUG") === true) {return view("debug_tool.debugbar");
}
abort(404);
});
最后放一下其他人寫(xiě)的教程供參考
如果很懶不想安裝,給一下我之前用過(guò)的一個(gè)助手函數(shù)打印sql
//可以用這個(gè)助手函數(shù)打印
functiongetSql ()
{
app("db")->listen(function ($sql) {$singleSql = $sql->sql;if ($sql->bindings) {foreach ($sql->bindings as $replace) {$value = is_numeric($replace) ? $replace : """ . $replace . """;$singleSql = preg_replace("/?/", $value, $singleSql, 1);
}
}
dump($singleSql);
});
}
總結(jié)
以上是生活随笔為你收集整理的Php+debugbar+api,Lumen/Laravel调试API接口利器laravel-debugbar的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 下载nltk数据包
- 下一篇: SDCMS131批量安装设置助手