Laravel、Lumen列印sql每次都要在手動加除錯代碼挺麻煩的,本文主要介紹另一個除錯神器 barryvdh/laravel-debugbar
先講一下效果,可以除錯帶頁面的介面,也可以除錯單純的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); }); }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/73409.html
標籤:PHP
