laravel debugbar擴展包配置

1、簡介

Laravel Debugbar 在 Laravel 5 中集成了php Debug Bar ,用於顯示調試及錯誤信息以方便開發。該擴展包包含了一個 ServiceProvider 用於註冊調試條及開發過程中數據集合顯示,你可以發佈其前端資源和配置,還可以配置顯示重定向及 Ajax 請求。

注意:只能在開發過程中使用該 Laravel Debugbar ,使用該擴展包對性能有影響(收集、聚合數據有系統開銷)。

該擴展包包含以下自定義收集器:

QueryCollector:顯示所有查詢,包含綁定和時間RouteCollector:顯示當前路由信息ViewCollector:顯示當前加載的視圖(可選:顯示共享數據)EventsCollector:顯示所有事件LaravelCollector:顯示Laravel版本和環境SymfonyRequestCollector:替換 RequestCollector,顯示關於請求/響應的更多信息LogsCollector:顯示來自日誌文件的最新日誌條目FilesCollector:顯示 PHP include/require 的文件ConfigCollector:顯示配置文件配置值

Laravel啓動時包含的收集器:

LogCollector:顯示所有日誌信息爲郵件提供的 SwiftMailCollector 和 SwiftLogCollector

以及以下默認收集器:

PhpInfoCollectorMessageCollectorTimeDataCollector(包含啓動及應用時間)MemoryCollectorExceptionsCollector

此外還提供了一個門面用於記錄消息、時間和異常。

2、安裝

使用 Composer 安裝該擴展包:

composer require barryvdh/laravel-debugbar

安裝完成後,在 config/app.php 中註冊服務提供者到 providers 數組。

Laravel 5.x

註冊如下服務提供者:

Barryvdh\Debugbar\ServiceProvider::class,

如果你想使用門面,在配置文件 config/app.php 中添加如下門面別名到 aliases 數組:

'Debugbar' => Barryvdh\Debugbar\Facade::class,

然後運行如下 Artisan 命令將該擴展包的配置文件拷貝到 config 目錄下:

php artisan vendor:publish

如果配置文件中 debug 設置爲 true 的話,Debugbar 分析器默認是啓用的,如果你想要關閉該分析器,在配置文件 config/debugbar.php 中設置 enabled 爲 false 即可。在該配置文件中,還可以進行更多配置,這裏不一一贅述了。

Lumen

對於 Lumen 而言,在 bootstrap/app.php 中註冊服務提供者:

if (env('APP_DEBUG')) {
$app->register(Barryvdh\Debugbar\LumenServiceProvider::class);
}

要修改默認配置,將配置文件拷貝到 config 目錄並做相應修改:

$app->configure('debugbar');3、使用

現在你可以使用 Debugbar 門面添加 PSR-3 級別消息:

Debugbar::info($object);
Debugbar::error('Error!');
Debugbar::warning('Watch out…');
Debugbar::addMessage('Another message', 'mylabel');

還可以設置開始/中止時間:

Debugbar::startMeasure('render','Time for rendering');
Debugbar::stopMeasure('render');
Debugbar::addMeasure('now', LARAVEL_START, microtime(true));
Debugbar::measure('My long operation', function() {
// Do something…
});

或者記錄異常:

try {
throw new Exception('foobar');
} catch (Exception $e) {
Debugbar::addException($e);
}

此外還有輔助函數實現上述調用:

// All arguments will be dumped as a debug message
debug($var1, $someString, $intValue, $object);
start_measure('render','Time for rendering');
stop_measure('render');
add_measure('now', LARAVEL_START, microtime(true));
measure('My long operation', function() {
// Do something…
});

如果你想要添加自己的數據收集器(DataCollector),可以通過容器或門面實現:

Debugbar::addCollector(new DebugBar\DataCollector\MessagesCollector('my_messages'));

或者通過 App 容器:

$debugbar = App::make('debugbar');
$debugbar->addCollector(new DebugBar\DataCollector\MessagesCollector('my_messages'));

默認情況下,Debugbar 被注入到 </body> 之前。如果你想要自己注入 Debugbar,在其配置文件中設置 inject 爲 false 然後使用渲染器自己渲染:

$renderer = Debugbar::getjavascriptRenderer();

更多渲染實現請參考: http://phpdebugbar.com/docs/rendering.html

注意:使用自動注入的話將會禁止顯示 Request 信息,因爲在響應之後纔會添加該信息。你可以通過在配置文件中添加 default_request 數據收集器作爲替換方案。

如果你想要在運行時開啓/關閉 Debugbar,可以通過如下方式:

\Debugbar::enable();
\Debugbar::disable();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章