溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Laravel/Lumen調(diào)試利器

發(fā)布時間:2020-07-23 08:45:19 來源:網(wǎng)絡 閱讀:6326 作者:hgditren 欄目:軟件技術

一、效果圖

Laravel/Lumen調(diào)試利器


二、功能點:
1.當前請求的路由
2.當前請求的參數(shù)
3.當前一次請求運行的SQL,及SQL的運行時間。

上面三點包含我們在本地環(huán)境開發(fā)過程中必備的基本調(diào)式信息。


三、實現(xiàn):
1.開發(fā)運行環(huán)境的配置

1.1打開.env文件 增加開關,建議開發(fā)環(huán)境設置為true,生產(chǎn)環(huán)境設置為false

APP_DEBUG=true

1.2設置LOG級別
APP_LOG_LEVEL=debug

1.3增加打印sql開關配置
打開config目錄的任意配置文件,我這里將配置防到database.php中

'sql_debug' => env('APP_DEBUG'),



2.實現(xiàn)打印請求路由及參數(shù)

打開App\Http\Controllers\Controller.php文件

增加構造方法:

public function __construct(Request $request)
{
    if (env('APP_DEBUG')) {
        \Log::debug("\n\n");
        \Log::debug('請求路由:' . $request->url());
        $requestParameters = $request->all();
        if (!empty($requestParameters)) {
            \Log::debug('請求參數(shù):' . var_export($requestParameters, true));
        } else {
            \Log::debug('請求參數(shù):無');
        }
    }    
}


3.實現(xiàn)打印運行的SQL語句

打開App\Providers\AppServiceProvider;

boot方法中增加DB監(jiān)聽

public function boot()
{
    //sql調(diào)試
    $sql_debug = config('database.sql_debug');//注意這里獲取開關配置
    if ($sql_debug) {
        DB::listen(function ($sql) {
            foreach ($sql->bindings as $i => $binding) {
                if ($binding instanceof \DateTime) {
                    $sql->bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
                } else {
                    if (is_string($binding)) {
                        $sql->bindings[$i] = "'$binding'";
                    }
                }
            }
            $query = str_replace(array('%', '?'), array('%%', '%s'), $sql->sql);
            $query = vsprintf($query, $sql->bindings);
            \Log::debug('運行SQL:' . $query);
            \Log::debug('運行耗時:' . $sql->time . ' ms');
        });
    }
}


四、驗證并使用
終端下進到項目根目錄,運行日志追蹤命令

tail -f ./storage/logs/laravel.log


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI