Laravel、Lumen列印sql每次都要在手動加調試代碼挺麻煩的。本文主要介紹另一個調試神器 barryvdh/laravel-debugbar 先講一下效果。可以調試帶頁面的介面,也可以調試單純的json api介面。 圖一:請求的介面列表,可以根據一些條件進行過濾。紅色劃線的部分是我自己修改 ...
Laravel、Lumen列印sql每次都要在手動加調試代碼挺麻煩的。本文主要介紹另一個調試神器
先講一下效果。可以調試帶頁面的介面,也可以調試單純的json api介面。
圖一:請求的介面列表,可以根據一些條件進行過濾。紅色劃線的部分是我自己修改composer保增加上去的選項,後面一起放出composer倉庫鏈接。
圖二、查看異常(就不用到伺服器看日誌文件了)
圖三、列印sql(所有sql一目瞭然)
還有其他幾個面板,就不截圖了。
安裝步驟:
1、安裝composer包
# 原版composer包,請求介面列表沒有我圖一划線那幾個篩選項
composer require barryvdh/laravel-debugbar composer require barryvdh/laravel-debugbar --dev //僅開發環境安裝
# 我修改的過的composer包
composer require evan766/laravel-debugbar composer require evan766/laravel-debugbar --dev //僅開發環境安裝
2、註冊服務提供者。該composer包同同時支持laravel和lumen,如果是lumen框架使用,註冊的服務提供者要換成lumen的服務提供者
#bootstrap/app.php
if (env('APP_ENV') != 'production' && env('APP_DEBUG') === true) { $app->register(Barryvdh\Debugbar\LumenServiceProvider::class); }
3、修改配置文件。將包中的debugbar.php配置文件放到Lumen項目的config目錄。
註意些以下幾個配置:
#是否啟用監聽調試,總開關,配置成 true開啟 'enabled' => env('DEBUGBAR_ENABLED', null), # 將調試頁面註入到你項目的運行的一個view頁面,在右下角出來一個調試標 'inject' => true,
4、修改app/Exceptions/Handler.php,所有異常加入到debugbar收集的信息中
public function report(Exception $e) {// 如果開發環境並且打開調試模式,將異常加入到debugbar調試工具中 if (config('app.env') != 'production' && env('APP_DEBUG') === true) { debugbar()->addThrowable($e); } parent::report($e); }
4、特別提示,對於沒有頁面的純api介面的調試。單獨定義一個路由渲染一個給debugbar註入調試信息的view頁面。然後你從任意地方(postman、app、前段項目)請求介面,點開右下角的調試按鈕,通過篩選項過濾出你要查看的api請求就行。
可以添加一個單獨的路由文件
<?php // debugbar 調試工具頁面 $router->get('debugbar', function () { if (env('APP_ENV') != 'production' && env('APP_DEBUG') === true) { return view('debug_tool.debugbar'); } abort(404); });
最後放一下其他人寫的教程供參考
學院君 https://xueyuanjun.com/post/2774.html
如果很懶不想安裝,給一下我之前用過的一個助手函數列印sql
// 可以用這個助手函數列印 function getSql () { 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); }); }