Laravel Debugbar 在 Laravel 5 中集成了 PHP Debug Bar ,用于显示调试及错误信息以方便开发。该扩展包包含了一个 ServiceProvider 用于注册调试条及开发过程当中数据集合显示,你能够发布其前端资源和配置,还能够配置显示重定向及 Ajax 请求。php
注意:只能在开发过程当中使用该 Laravel Debugbar ,使用该扩展包对性能有影响(收集、聚合数据有系统开销)。html
该扩展包包含如下自定义收集器:前端
Laravel启动时包含的收集器:laravel
以及如下默认收集器:bootstrap
此外还提供了一个门面用于记录消息、时间和异常。数组
使用 Composer 安装该扩展包:app
composer require barryvdh/laravel-debugbar
安装完成后,在 config/app.php
中注册服务提供者到 providers
数组。composer
Laravel 5.xide
注册以下服务提供者:函数
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 而言,在 bootstrap/app.php
中注册服务提供者:
if (env('APP_DEBUG')) { $app->register(Barryvdh\Debugbar\LumenServiceProvider::class); }
要修改默认配置,将配置文件拷贝到 config
目录并作相应修改:
$app->configure('debugbar');
如今你可使用 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();