barryvdh/laravel-debugbar
Composer 安装命令:
composer require --dev barryvdh/laravel-debugbar
包简介
PHP Debugbar integration for Laravel
README 文档
README
This is a package to integrate PHP Debug Bar with Laravel. It includes a ServiceProvider to register the debugbar and attach it to the output. You can publish assets and configure it through Laravel. It bootstraps some Collectors to work with Laravel and implements a couple custom DataCollectors, specific for Laravel. It is configured to display Redirects and Ajax/Livewire Requests, which are shown in a dropdown. Read the documentation for more configuration options.
Caution
Use the DebugBar only in development. Do not use Debugbar on publicly accessible websites, as it will leak information from stored requests (by design).
Warning
It can also slow the application down (because it has to gather and render data). So when experiencing slowness, try disabling some of the collectors.
This package includes some custom collectors:
- QueryCollector: Show all queries, including binding + timing
- RouteCollector: Show information about the current Route.
- ViewCollector: Show the currently loaded views. (Optionally: display the shared data)
- EventsCollector: Show all events
- LaravelCollector: Show the Laravel version and Environment. (disabled by default)
- SymfonyRequestCollector: replaces the RequestCollector with more information about the request/response
- LogsCollector: Show the latest log entries from the storage logs. (disabled by default)
- FilesCollector: Show the files that are included/required by PHP. (disabled by default)
- ConfigCollector: Display the values from the config files. (disabled by default)
- CacheCollector: Display all cache events. (disabled by default)
Bootstraps the following collectors for Laravel:
- LogCollector: Show all Log messages
- SymfonyMailCollector for Mail
And the default collectors:
- PhpInfoCollector
- MessagesCollector
- TimeDataCollector (With Booting and Application timing)
- MemoryCollector
- ExceptionsCollector
It also provides a facade interface (Debugbar) for easy logging Messages, Exceptions and Time
Installation
Require this package with composer. It is recommended to only require the package for development.
composer require fruitcake/laravel-debugbar --dev
Note: The package name has changed to
fruitcake/laravel-debugbar. If you're usingbarryvdh/laravel-debugbar, you can safely replace this with the new package name:composer remove barryvdh/laravel-debugbar --dev --no-scripts
Laravel uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider.
The Debugbar will be enabled when APP_DEBUG is true and when the environment is not production or testing.
You can disable it in the config (debugbar.enabled) or by setting DEBUGBAR_ENABLED in your .env. See more options in config/debugbar.php
You can also set in your config if you want to include/exclude the vendor files also (FontAwesome, Highlight.js and jQuery). If you already use them in your site, set it to false.
You can also only display the js or css vendors, by setting it to 'js' or 'css'. (Highlight.js requires both css + js, so set to true for syntax highlighting)
Copy the package config to your local config with the publish command:
php artisan vendor:publish --provider='Fruitcake\LaravelDebugbar\ServiceProvider'
Laravel with Octane:
Laravel Debugbar 4.x works out of the box with Octane. No need to add anything to your config.
If you're upgrading from Laravel Debugbar 3.x, remove the 'flush' config for Debugbar in config/octane.php.
Usage
You can now add messages using the Facade (when added), using the PSR-3 levels (debug, info, notice, warning, error, critical, alert, emergency):
Debugbar::info($object); Debugbar::error('Error!'); Debugbar::warning('Watch out…'); Debugbar::addMessage('Another message', 'mylabel');
And start/stop timing:
Debugbar::startMeasure('render','Time for rendering'); Debugbar::stopMeasure('render'); Debugbar::addMeasure('now', LARAVEL_START, microtime(true)); Debugbar::measure('My long operation', function() { // Do something… });
Or log exceptions:
try { throw new Exception('foobar'); } catch (Exception $e) { Debugbar::addThrowable($e); }
There are also helper functions available for the most common calls:
// 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(); debugbar()->startMeasure('render','Time for rendering'); debugbar()->stopMeasure('render'); debugbar()->addMeasure('now', LARAVEL_START, microtime(true)); debugbar()->measure('My long operation', function() { // Do something… });
If you want you can add your own DataCollectors, through the Container or the Facade:
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'));
By default, the Debugbar is injected just before </body>. If you want to inject the Debugbar yourself,
set the config option 'inject' to false and use the renderer yourself and follow https://php-debugbar.com/docs/rendering
$renderer = Debugbar::getJavascriptRenderer();
Note: Not using the auto-inject, will disable the Request information, because that is added After the response. You can add the default_request datacollector in the config as alternative.
Enabling/Disabling on run time
You can enable or disable the debugbar during run time.
\Debugbar::enable(); \Debugbar::disable();
NB. Once enabled, the collectors are added (and could produce extra overhead), so if you want to use the debugbar in production, disable in the config and only enable when needed.
Note: by default Debugbar can only be enabled in debug mode and non-production environments. It's highly recommended to don't install this in production at all. If you really need to enable it in production, you can set
debugbar.force_allow_enableto true, or setDEBUGBAR_FORCE_ALLOW_ENABLE=truein your .env. This will not enable the Debugbar, but will run the ServiceProvider bootstrap so you can enable it after booting.
Storage
Debugbar remembers previous requests, which you can view using the Browse button on the right. This will only work if you enable debugbar.storage.open in the config.
Make sure you only do this on local development, because otherwise other people will be able to view previous requests.
In general, Debugbar should only be used locally or at least restricted by IP.
It's possible to pass a callback, which will receive the Request object, so you can determine access to the OpenHandler storage.
Twig Integration
Laravel Debugbar comes with two Twig Extensions. These are tested with rcrowe/TwigBridge 0.6.x
Add the following extensions to your TwigBridge config/extensions.php (or register the extensions manually)
'Fruitcake\LaravelDebugbar\Twig\Extension\Debug', 'Fruitcake\LaravelDebugbar\Twig\Extension\Dump', 'Fruitcake\LaravelDebugbar\Twig\Extension\Stopwatch',
The Dump extension will replace the dump function to output variables using the DataFormatter. The Debug extension adds a debug() function which passes variables to the Message Collector,
instead of showing it directly in the template. It dumps the arguments, or when empty; all context variables.
{{ debug() }}
{{ debug(user, categories) }}
The Stopwatch extension adds a stopwatch tag similar to the one in Symfony/Silex Twigbridge.
{% stopwatch "foo" %}
…some things that gets timed
{% endstopwatch %}
Star History
barryvdh/laravel-debugbar 适用场景与选型建议
barryvdh/laravel-debugbar 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 133.3M 次下载、GitHub Stars 达 19.26k, 最近一次更新时间为 2013 年 09 月 05 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「debug」 「profiler」 「laravel」 「debugbar」 「dev」 「webprofiler」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 barryvdh/laravel-debugbar 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 barryvdh/laravel-debugbar 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 barryvdh/laravel-debugbar 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
g4 application profiler package
Debug your SimpleBus EventBus and CommandBus
nice output for debug functions for PHP 5.3
Analysis module for finding problematical shop data.
Twig extensions for Tracy Debugger
A package to integrate Elastic APM into Laravel
统计信息
- 总下载量: 133.3M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 19566
- 点击次数: 34
- 依赖项目数: 771
- 推荐数: 28
其他信息
- 授权协议: MIT
- 更新时间: 2013-09-05