Laravel Debugbar文档中文翻译

33 篇文章 0 订阅

原文地址 Laravel Debugbar 英文文档

laravel debugbar 安装教程

Laravel Debugbar

Packagist License
Latest Stable Version
Total Downloads

针对3.0版本:需要将APP_DEBUG设置为true

针对小于5.5版本的Laravel,请使用 2.4分支

该包是对Laravel 5的PHP Debug Bar的一个整合.
该包包含一个服务提供者来注册相关服务以及来控制输出.你可通过Laravel设定配置并且发布配置.
该包会随着Laravel开始工作后启动一些常规Collector,以及针对Laravel特别动作启动的Collector来收集数据.
该包被预置成会显示重定向和Jquery的Ajax请求(请在下拉框中显示).
可以观看官方文档查看更多内容.

Screenshot

注意:请仅在开发时使用该包工具.由于该包会采集框架运行中的数据,所以会降低项目运行速度.当然,可以关闭一些Collector来加快框架运行速度.

该调试工具包含一些常规的Collector:

  • QueryCollector:显示全部的sql查询,包含模型的绑定与查询时间
  • RouteCollector:显示当前路由的全部信息.
  • ViewCollector:显示当前加载的视图.(可选值:显示共享数据)
  • EventsCollector:显示所有事件
  • LaravelCollector:显示Laravel版本以及环境信息(默认是关闭)
  • SymfonyRequestCollector:替换RequestCollector,显示请求和响应的更多信息
  • LogsCollector:从缓存中读取最新一次的日志输入(默认是关闭)
  • FilesCollector:显示PHP加载的文件
  • ConfigCollector:显示项目配置文件中的值.(默认是关闭)
  • CacheCollector:显示缓存的内容(默认是关闭)

随着Laravel开始运行,以下Collector开始运行:

  • LogCollector:显示所有的日志信息
  • SwiftMailCollector和SwiftLogCollector 等针对邮件的Collector

以及以下这些默认开启的Collector:

  • PhpInfoCollector
  • MessagesCollector
  • TimeDataCollector (记录项目加载时间和应用运行时间)
  • MemoryCollector
  • ExceptionsCollector

该包还提供了Exceotions和Time的门面来更简单的记录信息.

安装

可以使用composer来安装该包.建议仅安装该包的dev版本.

composer require barryvdh/laravel-debugbar --dev

Laravel 5.5开始实现了类的自动加载,所以不需要你手动将该包注册进服务提供者中.

当你开启APP_DEBUGtrue时,该调试工具包会开启.

如果你设置了针对所有请求作出反应的路由,请确保你在实例化APP服务提供者之前加载该包.

Laravel 5.5+:

如果你不将该包使用composerautoload.php进行自动加载,那么你需要将该类加入到config/app.php中的自动加载类配置中

Barryvdh\Debugbar\ServiceProvider::class,

如果你想使用该包自带的门面,将该门面也一起加入到config/app.php

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

如果你将APP_DEBUG设置为true的话,则事件监听则默认开启.你可以重置以上操作,通过设置配置文件中的(debugar.enabled),或者在Laravel的.env中设置DEBUGBAR_ENABLED.更多设置请看config.debugbar.php

如果你想要加载vendor目录下的文件,你也可以在配置文件中进行设置(该文件包含字体文件,高亮js和JQuery).如果你在之前已经使用他们,关闭之前的配置.

你可以将上述文件加载进jscss资源路径中.(Highlight.js需要css和js,所以将语法高亮设置为true).

你可以使用以下命令将包中的配置信息保存进你的本地配置信息中:

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

Lumen

针对Lumen,需要将该包注册进一个服务提供者bootstrap/app.php

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

为了使配置生效,将配置文件信息复制到配置文件目录下,并且开启它:

$app->configure('debugbar');

用法

你现在可以使用门面来获取系统错误信息.该门面的调用方式符合PSR-3规范(debug, info, notice, warning, error, critical, alert, emergency):

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

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

默认情况下,该调试工具在</body>之前被注入,如果你想自定义注入位置,将配置文件中的inject设置为false,然后在需要位置渲染该提示信息,具体操作可请看http://phpdebugbar.com/docs/rendering.html

$renderer = Debugbar::getJavascriptRenderer();

注意:如果不适用默认的自动注入,则无法获取请求的相关信息,因为请求信息是在响应信息之后被加载的.为了能收集请求信息,你可以在配置文件中进行设置.

开启/关闭调试工具

在运行期间,可以通过以下方式开启或者关闭调试工具:

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

注意:一旦开启,该调试工具中的collector会被加载(造成额外的运行消耗),所以,所以如果你想在生产环境下使用该调试工具,请在配置文件中进行关闭,仅在需要时进行开启.

Twig混合开发

该调试包需要两个Twig扩展.他们使用rcrowe/TwigBridge 0.6.x进行测试.

将下面的拓展添加进TwigBridge config/extensions.php中(或者手动注册以下扩展)

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

Dump拓展或替换dump函数来控制数据输出.该拓展可以使用debug()函数来传递数据到Message Collector中,而不是直接在模本中进行输出.该函数会输出变量以及该变量的全部内容.

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

Stopwatch扩展会添加一个类似于Symfony/Silex Twigbridge的标签stopwatch tag

{% stopwatch "foo" %}
    …some things that gets timed
{% endstopwatch %}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值