lpnqduc/laravel-debugbar

为 Laravel 提供的 PHP Debugbar 集成

资助包维护!
barryvdh
fruitcake.nl

安装: 1

依赖: 0

建议: 0

安全: 0

星级: 0

关注者: 0

分叉: 1,542

v1.0.0 2023-01-31 03:08 UTC

This package is not auto-updated.

Last update: 2024-09-25 08:46:01 UTC


README

Unit Tests Packagist License Latest Stable Version Total Downloads Fruitcake

这是一个将 PHP Debug Bar 集成到 Laravel 的包。它包括一个 ServiceProvider,用于注册 debugbar 并将其附加到输出。您可以通过 Laravel 发布资产并配置它。它启动了一些收集器以与 Laravel 一起工作,并实现了几个针对 Laravel 的自定义数据收集器。它配置为显示重定向和(jQuery)Ajax 请求。(在下拉菜单中显示)有关更多配置选项,请参阅文档

Debugbar 3.3 Screenshot

注意:仅在使用开发环境时使用 DebugBar。它可能会减慢应用程序的速度(因为它需要收集数据)。因此,当遇到速度减慢时,请尝试禁用一些收集器。

此包包含一些自定义收集器

  • QueryCollector:显示所有查询,包括绑定和计时
  • RouteCollector:显示当前路由的信息。
  • ViewCollector:显示当前加载的视图。(可选:显示共享数据)
  • EventsCollector:显示所有事件
  • LaravelCollector:显示 Laravel 版本和环境。(默认禁用)
  • SymfonyRequestCollector:用更多关于请求/响应的信息替换 RequestCollector
  • LogsCollector:显示存储日志中的最新日志条目。(默认禁用)
  • FilesCollector:显示由 PHP 包含/需要的文件。(默认禁用)
  • ConfigCollector:显示配置文件中的值。(默认禁用)
  • CacheCollector:显示所有缓存事件。(默认禁用)

为 Laravel 启动以下收集器

  • LogCollector:显示所有日志消息
  • SwiftMailCollector 和 SwiftLogCollector 用于邮件

和默认收集器

  • PhpInfoCollector
  • MessagesCollector
  • TimeDataCollector(包括启动和应用程序计时)
  • MemoryCollector
  • ExceptionsCollector

它还提供了一个门面接口(Debugbar),用于轻松记录消息、异常和时间

安装

使用 composer 安装此包。建议仅将包用于开发。

composer require barryvdh/laravel-debugbar --dev

Laravel 使用包自动发现,因此不需要您手动添加 ServiceProvider。

APP_DEBUGtrue 时,将启用 Debugbar。

如果您使用了一个通配符/回退路由,请确保在您的 App ServiceProvider 之前加载 Debugbar ServiceProvider。

Laravel 没有使用自动发现

如果您不使用自动发现,请将 ServiceProvider 添加到 config/app.php 中的 providers 数组中。

Barryvdh\Debugbar\ServiceProvider::class,

如果您想使用门面来记录消息,请将以下内容添加到您的 app.php 中的门面

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

默认情况下启用分析器,如果 APP_DEBUG=true。您可以在配置中覆盖此设置(debugbar.enabled)或在您的 .env 中设置 DEBUGBAR_ENABLED。在 config/debugbar.php 中查看更多选项。您还可以设置是否包含/排除供应商文件(FontAwesome、Highlight.js 和 jQuery)。如果您已经在您的网站上使用它们,则将其设置为 false。您还可以通过将其设置为 'js' 或 'css' 来仅显示 js 或 css 供应商。(Highlight.js 需要 css + js,因此将其设置为 true 以进行语法高亮显示)

使用发布命令将包配置复制到您的本地配置

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

Laravel 与 Octane

请确保在 config/octane.php 中将 LaravelDebugbar 添加到您的 flush 列表中。

    'flush' => [
        \Barryvdh\Debugbar\LaravelDebugbar::class,
    ],

Lumen

对于 Lumen,在 bootstrap/app.php 中注册不同的 Provider

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

要更改配置,请将文件复制到您的配置文件夹中并启用它

$app->configure('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::addThrowable($e);
}

还提供了用于最常见的调用的辅助函数

// All arguments will be dumped as a debug message
debug($var1, $someString, $intValue, $object);

// `$collection->debug()` will return the collection and dump it as a debug message. Like `$collection->dump()`
collect([$var1, $someString])->debug();

start_measure('render','Time for rendering');
stop_measure('render');
add_measure('now', LARAVEL_START, microtime(true));
measure('My long operation', function() {
    // Do something…
});

如果您愿意,可以通过容器或外观添加自己的数据收集器

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'));

默认情况下,Debugbar注入在</body>之前。如果您想自己注入Debugbar,请将配置选项'inject'设置为false并自己使用渲染器,并遵循http://phpdebugbar.com/docs/rendering.html

$renderer = Debugbar::getJavascriptRenderer();

注意:不使用自动注入将禁用请求信息,因为这是在响应之后添加的。您可以在配置中将默认_request数据收集器作为替代添加。

运行时启用/禁用

您可以在运行时启用或禁用调试栏。

\Debugbar::enable();
\Debugbar::disable();

注意。一旦启用,收集器就会被添加(可能会产生额外开销),所以如果您想在生产中使用调试栏,请在配置中禁用,并在需要时才启用。

Twig集成

Laravel Debugbar附带了两个Twig扩展。这些扩展与rcrowe/TwigBridge 0.6.x进行了测试

将以下扩展添加到您的TwigBridge配置文件extensions.php中(或手动注册扩展)

'Barryvdh\Debugbar\Twig\Extension\Debug',
'Barryvdh\Debugbar\Twig\Extension\Dump',
'Barryvdh\Debugbar\Twig\Extension\Stopwatch',

输出变量使用DataFormatter的Dump扩展将替换dump函数。调试扩展添加了一个将变量传递给消息收集器的debug()函数,而不是直接在模板中显示它。它输出参数,或当为空时;所有上下文变量。

{{ debug() }}
{{ debug(user, categories) }}

Stopwatch扩展添加了一个类似于在Symfony/Silex Twigbridge中的stopwatch标签

{% stopwatch "foo" %}
    …some things that gets timed
{% endstopwatch %}