listen-sql 一個在控制檯看到實時 sql 操作的工具
在 Laravel 中列印 sql,以往的做法往往是,通過 DB::listen
監聽,然後通過 Log::info
寫入到 log 中。
這樣寫入的 log,我們想檢視往往是去 storage 資料夾下找到當天的 log 檔案,然後開啟。有個不好的地方是,如果在編輯器開啟,往往不會實時更新。請求完之後,可能需要切到其他 tab 再切換回來才會更新。同時,太多的 sql 日誌會和其他 log 混雜在一起,會顯得有些混亂。
除此之外,也可以 tail -f storage/logs/xx.log
來實時檢視 log 的輸出。這樣有個不好的地方是,如果在 config/app.php
定義了 log => 'daily'
,每天都要輸入一個新的檔名。
現在,我們可以只使用一個命令來實現監聽應用裡的 sql 操作。
安裝
1.通過 composer 安裝 (eleven26/listen-sql)。
composer require "eleven26/listen-sql:~1.0.2"
2.註冊 Service Provider
-
Laravel
: 修改檔案config/app.php
,Laravel 5.5+
不需要'providers' => [ //... Eleven26\ListenSql\ListenSqlServiceProvider::class, ],
-
Lumen
: 修改檔案bootstrap/app.php
$app->register(Eleven26\ListenSql\ListenSqlServiceProvider::class);
使用
php artisan listen-sql:start
到這一步,去頁面重新整理的時候,就可以在控制檯看到 sql
語句了