首頁 > php框架 > Laravel > 主體

Laravel 中 SQL Debug 小技巧

Guanhui
發布: 2020-06-12 17:56:19
轉載
3137 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板