johnbillion/query-monitor

WordPress的开发者工具面板。

资助包维护!
johnbillion

安装: 310 198

依赖关系: 6

建议者: 0

安全性: 0

星标: 1 586

关注者: 46

分支: 208

开放问题: 112

类型:wordpress-plugin

3.16.4 2024-07-25 10:21 UTC

README

WordPress Plugin Version License WordPress Tested Build Status

Query Monitor

Query Monitor是WordPress的开发者工具面板。它允许调试数据库查询、PHP错误、钩子和动作、块编辑器块、已排队的脚本和样式表、HTTP API调用等。

它包括一些高级特性,如Ajax调用、REST API调用、用户能力检查的调试,以及完全支持块主题和全站编辑。它允许通过插件或主题缩小其输出范围,让您能够快速确定表现不佳的插件、主题或函数。

Query Monitor非常重视以有用的方式呈现其信息。以下是一个示例,展示了按负责它们的组件分组的聚合数据库查询

Aggregate Database Queries by Component

特性

数据库查询

  • 显示当前请求期间执行的所有数据库查询
  • 显示所有查询影响的行数和耗时
  • 显示慢查询、重复查询和有错误的查询的通知
  • 按类型、组件或调用函数分组显示查询的汇总信息
  • 可以通过查询类型、组件或调用函数过滤查询

通过组件或调用函数过滤查询可以轻松地看到您的网站上哪些插件、主题或函数正在执行最多的(或最慢的)数据库查询。

钩子 & 动作

  • 显示当前请求期间触发的一切钩子,包括动作回调、优先级和组件
  • 可以按组件或名称过滤动作

主题

  • 显示模板文件名和完整的模板层次结构
  • 显示所有请求的模板部分以及它们是否已加载
  • 显示可用的身体类
  • 完全支持块主题和全站编辑(FSE)

PHP错误

  • 显示PHP警告、通知、严格错误和已弃用的错误,格式良好,并带有其组件和调用堆栈
  • 在必要时在管理工具栏中显示可见警告

错误做法

  • 显示在您的网站上使用“错误做法”或“已弃用”功能的情况

块内容

  • 显示来自帖子内容和全站编辑的块及其相关信息

请求

  • 显示请求匹配的URL重写规则的信息和相应的查询参数
  • 显示查询变量并突出显示任何自定义的变量

脚本 & 样式

  • 显示所有已排队的脚本和样式,包括其句柄、URL和版本
  • 显示它们的依赖关系和依赖者
  • 提醒您任何损坏或缺失的依赖关系
  • 支持WordPress 6.5中添加的脚本模块功能

语言

  • 显示您语言设置和加载的文本域
  • 显示每个文本域请求的MO、JSON和PHP翻译文件以及哪些已被加载

HTTP API请求

  • 显示所有服务器端HTTP请求(只要它们使用WordPress HTTP API)
  • 显示响应代码、调用堆栈、组件、超时、响应大小、耗时和其他元数据
  • 提醒您错误的响应,如失败的请求和任何没有响应代码200的请求

用户能力检查

  • 显示执行的所有用户能力检查,包括结果和与能力检查一起传递的任何参数

多站点

  • 显示在多站点安装上对 switch_to_blog()restore_current_blog() 的所有调用

重定向

  • 每当发生服务器端重定向时,Query Monitor 会添加一个包含调用栈的 X-QM-Redirect HTTP 标头,这样您可以使用您喜欢的 HTTP 检查器或浏览器开发者工具来追踪重定向的来源

Ajax

页面上任何 jQuery Ajax 请求的响应将包含其标题中的各种调试信息。任何错误也将输出到开发者控制台。无需挂钩。

目前这包括 PHP 错误和一些概述信息,如内存使用情况,但在未来的版本中将会进一步完善。

REST API

经过身份验证的 WordPress REST API 请求的响应将包含其标题中的各种调试信息,只要经过身份验证的用户有权限查看 Query Monitor 的输出。

了解更多关于使用 Query Monitor 调试 REST API 请求的信息.

管理屏幕

  • 显示所有使用列表表的管理屏幕上自定义列筛选器和操作的正确名称
  • 显示 get_current_screen() 的状态和一些全局变量

环境信息

  • 显示 PHP 信息,如内存限制、错误报告级别和各种常量的值
  • 显示 MySQL 或 MariaDB 信息,包括缓存和性能相关的配置
  • 显示有关 WordPress 和 Web 服务器的信息
  • 显示所有事物的版本号

日志记录

可以通过操作将调试消息发送到日志面板。这可以作为 var_dump() 的良好替代品。

do_action( 'qm/debug', 'This happened!' );

记录器与 PSR-3 兼容,因此您可以使用以下任何操作,它们对应于 PSR-3 日志级别:

  • qm/debug
  • qm/info
  • qm/notice
  • qm/warning
  • qm/error
  • qm/critical
  • qm/alert
  • qm/emergency

日志级别为 warning 或更高将触发 Query Monitor 管理工具栏中的通知。

了解更多关于 Query Monitor 中的配置文件和日志记录的信息.

配置文件

基本性能配置文件可以通过代码中的操作在时间面板中显示。

// Start the 'foo' timer:
do_action( 'qm/start', 'foo' );

// Run some code
my_potentially_slow_function();

// Stop the 'foo' timer:
do_action( 'qm/stop', 'foo' );

了解更多关于 Query Monitor 中的配置文件和日志记录的信息.

其他所有内容

  • 显示已设置的任何临时项,包括它们的超时、组件和调用栈
  • 显示当前请求期间的所有 WordPress 条件,并以很好的方式突出显示
  • 在顶部显示概述,包括页面生成时间和内存限制作为绝对值以及作为其相应限制的百分比

身份验证

默认情况下,Query Monitor 的输出仅显示给单站点安装上的管理员和多站点安装上的超级管理员。

除了这一点之外,您还可以设置一个身份验证cookie,这允许您在不登录或以通常无法查看 Query Monitor 输出的用户身份登录时查看 Query Monitor 的输出。有关详细信息,请参阅设置面板。

注释

关于 Query Monitor 实现的说明

为了做一些巧妙的事情,Query Monitor 在您的 WP_CONTENT_DIR 中创建了一个自定义的 db.php 符号链接,这意味着它加载得非常早。此文件在数据库驱动程序加载之前被包含,这意味着 Query Monitor 的这部分加载在 WordPress 甚至开始工作之前。

在此文件中是 Query Monitor 对 wpdb 类的扩展,它

  • 允许它记录有关 所有 数据库查询的详细信息(包括在插件加载之前发生的查询)
  • 为每个查询记录完整的堆栈跟踪,这允许它确定负责查询的组件
  • 记录查询结果,这允许它显示受影响的行或相应的错误消息(如果适用)

如果您的WP_CONTENT_DIR不可写,因此无法放置db.php的符号链接,Query Monitor仍然可以工作,但这项扩展功能将不可用。如果您有权限,可以手动创建db.php符号链接

屏幕截图

管理工具栏菜单

Admin Toolbar Menu

数据库查询

Database Queries

能力检查

Capability Checks

按组件汇总数据库查询

Aggregate Database Queries by Component

按调用函数汇总数据库查询

Aggregate Database Queries by Calling Function

钩子和动作

Hooks and Actions

HTTP API请求

HTTP API Requests

常见问题解答

请参阅WordPress.org插件页面上的Query Monitor常见问题解答.

您接受捐款吗?

我正在通过GitHub Sponsors项目接受赞助。如果您在一家使用WordPress进行开发的机构工作,请要求您的公司提供赞助以投资其供应链。我维护的工具可能为您公司节省时间和金钱,GitHub赞助现在可以在组织级别进行。

此外,如果您喜欢这个插件,我将非常乐意您留下评论。也请告诉您的所有朋友!

隐私声明

Query Monitor默认是私有的,并且将始终如此。它不会持久存储收集到的任何数据。它不会向任何第三方发送数据,也不会包含任何第三方资源。

Query Monitor的完整隐私声明可以在这里找到.

无障碍声明

Query Monitor的目标是使其对所有用户都完全无障碍。它实施了网络无障碍的最佳实践,输出语义和结构化的标记,在适当的地方使用WordPress和网页浏览器提供的无障碍API,并通过键盘完全无障碍。

尽管如此,Query Monitor并不像WordPress本身那样符合Web内容无障碍指南(WCAG)2.0 AA级。主要问题是用户界面使用小字体以保持对有视觉能力的用户的高信息密度。视力不佳或运动技能不佳的用户可能因为字体太小而难以查看或与Query Monitor的一些区域进行交互。这是我最清楚的事情,也是我努力逐步改进的事情,但字体太小的问题仍然存在。

如果您在Query Monitor中遇到或识别出其他无障碍问题,请在Query Monitor插件支持论坛中打开一个线程,我将尽力迅速解决它。

相关工具

调试很少只用一个工具完成。除了Query Monitor外,您还应了解其他用于调试和剖析您网站的插件和工具。以下是一些推荐

WordPress插件

Query Monitor还有几个扩展插件,可以扩展其功能,并透明地支持Debug Bar插件的扩展(有关更多信息,请参阅常见问题解答)。

请参阅我的WordPress开发者插件列表

其他工具

托管服务

贡献

欢迎贡献代码、反馈和建议功能。详情请参阅 CONTRIBUTING.md

图标

Query Monitor 的图标由 Tubagus Didin Asrori 设计。

许可证:GPLv2

本程序是自由软件;您可以按照自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它;许可证的版本可以是2,也可以是(根据您的选择)任何更新版本。

本程序的分发是希望它有用,但没有任何保证;甚至没有关于其商誉或针对特定目的的适用性的暗示性保证。有关详细信息,请参阅GNU通用公共许可证。