Laravel-debugbar

戴浩初
2023-12-01

文章概览

  1. 安装;
  2. 高级用法。

接下来是详细解说。

安装

1). 使用 Composer 安装该扩展包:

composer require barryvdh/laravel-debugbar

2). 安装完成后,修改 config/app.phpproviders 数组内追加 Debugbar 的 Provider

'providers' => [
    ...
    Barryvdh\Debugbar\ServiceProvider::class,
],

同时在 aliases 数组内追加如下内容

'aliases' => [
    ...
    'Debugbar' => Barryvdh\Debugbar\Facade::class,
]

3). 接下来运行以下命令生成此扩展包的配置文件 config/debugbar.php

php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"

打开 config/debugbar.php,将 enabled 的值设置为:

'enabled' => env('APP_DEBUG', false),

修改完以后, Debugbar 分析器的启动状态将由 .env文件中 APP_DEBUG 值决定。

页面刷新后, 看到下图即表示运行成功。


用法

你现在可以使用门面来获取系统错误信息.该门面的调用方式符合PSR-3规范(debug, info, notice, warning, error, critical, alert, emergency):

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

以及获取应用计时信息:

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

或者记录异常发生情况:

try {
    throw new Exception('foobar');
} catch (Exception $e) {
    Debugbar::addThrowable($e);
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5

在该包中还存在公共函数来处理一些常用需求:

// 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…
});
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

你可以向服务容器或者门面中注册自定义的消息收集器:

Debugbar::addCollector(new DebugBar\DataCollector\MessagesCollector('my_messages'));
//Or via the App container:
$debugbar = App::make('debugbar');
$debugbar->addCollector(new DebugBar\DataCollector\MessagesCollector('my_messages'));
 
 
  • 1
  • 2
  • 3
  • 4

默认情况下,该调试工具在</body>之前被注入,如果你想自定义注入位置,将配置文件中的inject设置为false,然后在需要位置渲染该提示信息

$renderer = Debugbar::getJavascriptRenderer();
 
 
  • 1

注意:如果不适用默认的自动注入,则无法获取请求的相关信息,因为请求信息是在响应信息之后被加载的.为了能收集请求信息,你可以在配置文件中进行设置.

开启/关闭调试工具

在运行期间,可以通过以下方式开启或者关闭调试工具:

\Debugbar::enable();
\Debugbar::disable();
 
 
  • 1
  • 2

注意:一旦开启,该调试工具中的collector会被加载(造成额外的运行消耗),所以,所以如果你想在生产环境下使用该调试工具,请在配置文件中进行关闭,仅在需要时进行开启.


 类似资料: