首頁  >  文章  >  php框架  >  Laravel 中 SQL Debug 小技巧

Laravel 中 SQL Debug 小技巧

Guanhui
Guanhui轉載
2020-06-12 17:56:193144瀏覽

Laravel 中 SQL Debug 小技巧

基於某些原因,你不能使用 Laravel DebugBar ,這篇文章可能會幫助你。

針對 Laravel 應用程式的最佳化遠遠不止消除 N 1 問題那麼簡單。合理的使用 Laravel DebugBar 可以對模型記憶體的使用以及 SQL 查詢時效等問題給出合理的解決方案。

可能你不喜歡使用Laravel DebugBar,或是基於某些原因而無法使用(例如基於介面應用的開發),那麼Database Listener 將會是個不錯的方法,他會記錄你的SQL 查詢到紀錄.

這在生產環境與測試環境同樣適用,你可以很簡單的透過 env 或 config 控制它的啟用與否。

如何使用:

將此加入到你的AppServiceProvider 的啟動方法中

 if (env("SQL_DEBUG_LOG"))
    {
        DB::listen(function ($query) {
            Log::debug("DB: " . $query->sql . "[".  implode(",",$query->bindings). "]");
        });
    }

如果你在生產環境中使用它的話,我建議你可以把config 中的設定資訊放到env 中,然後你還可以(而且應該)快取這個config 訊息

我發現另一個問題是假如sql 呼叫本身失敗,會拋出一個異常,在成功呼叫前其監聽的DB::listen 並不會進行記錄,且該異常會在返回監聽之前發生。

推薦教學:《PHP教學》《Laravel教學

以上是Laravel 中 SQL Debug 小技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除