lpnqduc / laravel-debugbar
为 Laravel 提供的 PHP Debugbar 集成
Requires
- php: >=7.2.5
- illuminate/routing: ^7|^8.67|^9|^10
- illuminate/session: ^7|^8.67|^9|^10
- illuminate/support: ^7|^8.67|^9|^10
- maximebf/debugbar: ^1.17.2
- symfony/finder: ^5|^6
Requires (Dev)
- mockery/mockery: ^1.3.3
- orchestra/testbench-dusk: ^5|^6|^7|^8
- phpunit/phpunit: ^8.5.30|^9.0
- squizlabs/php_codesniffer: ^3.5
This package is not auto-updated.
Last update: 2024-09-25 08:46:01 UTC
README
这是一个将 PHP Debug Bar 集成到 Laravel 的包。它包括一个 ServiceProvider,用于注册 debugbar 并将其附加到输出。您可以通过 Laravel 发布资产并配置它。它启动了一些收集器以与 Laravel 一起工作,并实现了几个针对 Laravel 的自定义数据收集器。它配置为显示重定向和(jQuery)Ajax 请求。(在下拉菜单中显示)有关更多配置选项,请参阅文档。
注意:仅在使用开发环境时使用 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_DEBUG 为 true 时,将启用 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 %}
