1、简介

Laravel Debugbar 在 Laravel 5 中集成了 PHP Debug Bar ,用于显示调试及错误信息以方便开发。该扩展包包含了一个 ServiceProvider 用于注册调试条及开发过程中数据集合显示,你可以发布其前端资源和配置,还可以配置显示重定向及 Ajax 请求。

注意:只能在开发过程中使用该 Laravel Debugbar ,使用该扩展包对性能有影响(收集、聚合数据有系统开销)。

该扩展包包含以下自定义收集器:

  • QueryCollector:显示所有查询,包含绑定和时间
  • RouteCollector:显示当前路由信息
  • ViewCollector:显示当前加载的视图(可选:显示共享数据)
  • EventsCollector:显示所有事件
  • LaravelCollector:显示Laravel版本和环境
  • SymfonyRequestCollector:替换 RequestCollector,显示关于请求/响应的更多信息
  • LogsCollector:显示来自日志文件的最新日志条目
  • FilesCollector:显示 PHP include/require 的文件
  • ConfigCollector:显示配置文件配置值

Laravel启动时包含的收集器:

  • LogCollector:显示所有日志信息
  • 为邮件提供的 SwiftMailCollector 和 SwiftLogCollector

以及以下默认收集器:

  • PhpInfoCollector
  • MessageCollector
  • TimeDataCollector(包含启动及应用时间)
  • MemoryCollector
  • ExceptionsCollector

此外还提供了一个门面用于记录消息、时间和异常。

2、安装

使用 Composer 安装该扩展包:

composer require barryvdh/laravel-debugbar

安装完成后,在 config/app.php 中注册服务提供者到 providers 数组。

Laravel 5.x

注册如下服务提供者:

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

对于 Lumen 而言,在 bootstrap/app.php 中注册服务提供者:

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

要修改默认配置,将配置文件拷贝到 config 目录并做相应修改:

$app->configure('debugbar');

3、使用

现在你可以使用 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();

Laravel 调试利器 —— Laravel Debugbar 扩展包安装及使用教程的更多相关文章

  1. Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法)

    Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法) https://blog.csdn.net/ksws0292756/article/details ...

  2. VirtualBox扩展包安装教程|VirtualBox扩展增强包怎么安装

    VirtualBox是一款功能强大的免费虚拟机软件,一般我们安装VirtualBox后要安装扩展增强包,VirtualBox扩展包包含USB2.0和USB3.0控制等支持功能,如果没有装,在使用过程中 ...

  3. Laravel --- 【转】安装调试利器 Laravel Debugbar

    [转]http://www.tuicool.com/articles/qYfmmur 1.简介 Laravel Debugbar 在 Laravel 5 中集成了 PHP Debug Bar ,用于显 ...

  4. laravel框架应用和composer扩展包开发

    laravel5.5+ laravel官方地址 laravel是目前最流行的php框架,发展势头迅猛,应用非常广泛,有丰富的扩展包可以应付你能想到的各种应用场景,laravel框架思想前卫,跟随时代潮 ...

  5. 在 Laravel 中通过 Artisan View 扩展包创建及删除应用视图文件

    1.简介 本扩展包添加了两个视图相关的Artisan命令到Laravel应用,以便我们通过Artisan命令即可创建和管理视图文件,可谓是进一步解放了生产力. 2.安装 还是通过Composer安装: ...

  6. laravel中使用的PDF扩展包——laravel-dompdf和laravel-snappy

    这两天项目中需要将HTML页面转换为PDF文件方便打印,我在网上搜了很多资料.先后尝试了laravel-dompdf和laravel-snappy两种扩展包,个人感觉laravel-snappy比较好 ...

  7. Python之扩展包安装

    读者朋友,在比较新的版本(Python 2 >=2.7.9 or Python 3 >=3.4)中,pip或者easy_install 扩展包命令已经默认安装(可查看   你的安装目录\p ...

  8. 正确的 Composer 扩展包安装方法

    问题说明 我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的: composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害. 因为 com ...

  9. 【转】正确的 Composer 扩展包安装方法

    简单解释 composer install - 如有 composer.lock 文件,直接安装,否则从 composer.json 安装最新扩展包和依赖: composer update - 从 c ...

随机推荐

  1. 谁是云的王者?OpenStack与VMware优劣对比

    [编者按]在云计算生态系统中,有两种类型的用户需要使用云计算资源:传统型(Traditional IT applications)和在互联网大潮下逐渐崛起云计算应用型(Cloud-aware appl ...

  2. Databinding在自定义ViewGroup中如何绑定view

    首先我们在平时开发中使用databinding的时候大部分都是在Activity或者fragment中,但我们一旦在自定义ViewGroup中使用的时候就会出现问题 问题描述: 我们在自定义Linea ...

  3. 解决xshell6评估过期,需采购问题

    2018年12月20日补充 绿色免安装版: https://www.lanzous.com/i2njdre 密码:9b7t 2018年7月18日补充 感谢s***5大佬提供注册包,有需要的小伙伴,请留 ...

  4. 【独立开发人员er Cocos2d-x实战 013】Cocos2dx 网络编程实战之星座运势

    学习cocos2d-x和cocos creator的圈子:cocos2d-x:436689827    cocos creator:124727696 本篇文章主要内容:jsoncpp的使用,Coco ...

  5. nodejs rar/zip加密压缩、解压缩

    1.shell/cmd命令行压缩解压缩 (1)zip压缩解压缩 zip压缩:zip -rP{密码} <目标文件.zip> <源文件> //默认覆盖现有文件 zip解压缩:zip ...

  6. 浅谈DNS

    什么叫域名解析 域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站一种服务.IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址.域名解析就是域 ...

  7. vue之v-bind:style

    <div class="collect" @click="collected=!collected"> <i class="fa f ...

  8. M²的经典语录

    1. If you failed, stop and think! You should work in the correct way. 2. If I can do all of it, why ...

  9. JavaScript处理数据完成左侧二级菜单的搭建

    我们在项目中应用的后台管理框架基本上都是大同小异,左侧是一个二级菜单,点击选中的菜单,右侧对应的页面展示.我把前端页面封装数据的过程整理了一下,虽然不一定适合所有的管理页面,仅作为案例来参考,只是希望 ...

  10. 《挑战程序设计竞赛》2.1 深度优先搜索 POJ2386 POJ1979 AOJ0118 AOJ0033 POJ3009

    POJ2386 Lake Counting Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25366   Accepted: ...