konafets/typo3_debugbar

利用PHP Debugbar向前端提供系统健康信息。

安装次数: 21,403

依赖项: 1

建议者: 0

安全: 0

星标: 37

关注者: 9

分支: 6

开放性问题: 8

类型:typo3-cms-extension

1.3.3 2018-03-19 08:52 UTC

This package is auto-updated.

Last update: 2024-09-21 20:50:52 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

这是一个将PHP Debug Bar集成到TYPO3的包。它使用几个钩子将资产和自身包含到前端输出中。它启动了一些收集器以与TYPO3协同工作,并实现了一些自定义数据收集器,适用于TYPO3。

阅读文档以获取更多配置选项。

Screenshot

信息:仅在开发中使用DebugBar。它可能会减慢应用程序的运行速度(因为它需要收集数据)。因此,当遇到速度减慢的情况时,请尝试禁用一些收集器。

该扩展包含默认的收集器

  • PhpInfoCollector:显示PHP版本
  • MessagesCollector:从应用程序内部收集消息并将其推送到DebugBar
  • TimeDataCollector:您可以在其中启动和停止计时器。默认情况下,它计时应用程序。更多内容请参阅使用部分
  • MemoryCollector:显示内存使用情况
  • ExceptionsCollector:从应用程序内部收集异常并将其推送到DebugBar

并包含一些自定义收集器

  • InfoCollector:显示与管理员面板信息面板相同的信息
  • MySqliCollector:显示所有查询,包括定时和准备语句的值
  • Typo3Collector:显示TYPO3版本、区域和环境
  • AuthCollector:显示登录的后台用户的用户名
  • SessionCollector:显示会话数据

安装

使用composer安装此包。建议仅用于开发需要此包。

composer require konafets/typo3_debugbar --dev

之后,您需要在扩展管理器中激活扩展。默认情况下已启用DebugBar,如果您作为管理员登录到后端,它将显示给您。

使用方法

通过扩展管理器配置扩展。在那里您可以启用/禁用DebugBar以及数据收集器。

Configuration

无处不在使用

Typo3DebugBar实现了SingletonInterface,因此您可以通过debugbar()获取相同的实例。这为您从TYPO3内部与DebugBar交互打开了可能性。

记录异常

try {
    throw new Exception('foobar');
} catch (Exception $e) {
    debugBar()->addThrowable($e);
}

这些将在异常面板中显示。

添加消息

debugBar()->info($object);
debugBar()->error('Error!');
debugBar()->warning('Watch out…');
debugBar()->addMessage('Another message', 'mylabel');
MessagesPane

添加计时器

并开始/停止计时

debugBar()->startMeasure('render', 'Time for rendering');
debugBar()->stopMeasure('render');
debugBar()->addMeasure('now', TYPO3_START, microtime(true));
debugBar()->measure('My long operation', function() {
    // Do something…
});
debugbar_debug($value);

或更简洁地

startMeasure('render', 'Time for rendering');
stopMeasure('render');
addMeasure('now', TYPO3_START, microtime(true));
measure('My long operation', function() {
    // Do something…
});

数据库

此面板显示与名为默认的连接的所有已发出查询。如果没有此名称的连接,则将使用ConnectionPool的第一个连接。

使用占位符

默认情况下,语句以准备语句的形式显示,这意味着占位符在语句内部,而实际值在每个语句下面的隐藏表中。要查看它们,请单击语句。

DatabasePane

使用参数

要直接在语句中渲染值,请在扩展设置中激活with_params选项。

信息:该扩展使用connectToDB钩子将Doctrine\DBAL\Logging\DebugStack注入到连接中作为记录器。在渲染过程结束时,它会检索记录器并显示记录的查询。重要的是要理解,无论是否在前端显示,该扩展都会在任何情况下添加Doctrine\DBAL\Logging\DebugStack。这是因为从一开始就记录所有查询...但那时BE用户尚未初始化,并且尚不清楚是否启用了DebugBar。这是一个经典的鸡生蛋,蛋生鸡问题。

VarDump

众所周知,DebugUtility::var_dump()的输出...也众所周知,它会破坏布局。让我们将输出移至TYPO3 Debugbar。使用Konafets\Typo3Debugbar\Overrides\DebuggerUtility::var_dump($variable),可以得到如下输出

VarDumpPane

生命周期

如上所述,该扩展使用钩子。以下图展示了请求生命周期中的使用情况。

LifeCycle

致谢

该扩展深受Laravel Debugbar的启发。感谢你的出色工作Barry vd. Heuvel。我还从Laravel复制了ServiceProvider的想法。