编程

PHP DebugBar v3 发布

8 2026-01-24 01:14:00

Barry vd. Heuvel 发布 PHP DebugBar v3,Laravel Debugbar 也将很快发布。

PHP DebugBar 新功能:

  • 现代化 JavaScript,移除 jQuery
  • 使用构建脚本引入新的 Tabler 图标,用轻量级的 SVG 图标替换了臃肿的 FontAwesome
  • 用于前缀依赖项和最小化资源的构建脚本
  • 新的 AssetHandler 使将资源导入到你自己的项目更加容易
  • 改进了浅色模式的对比度
  • 可以选择将调试栏渲染在顶部而不是底部
  • 打开时渲染 widget 以减少初始页面加载时间
  • 改进了对其他收集器的 TimelineData 支持
  • QueryCollector 的回溯支持
  • 使用 phpstan/eslint 进行静态分析,到处都有类型提示
  • 添加了 Symfony HttpFoundation Request collector(带桥接器)
  • 性能提升和更多优化。

需要注意的重大更改

这是一个主要版本,因此会有一些重大更改。如果有自定义收集器、widget 或深度集成,请做好调整准备:

Widget和用户界面

  • jQuery 已移除,widget 现在是 JavaScript 类。自定义 widget 需要更新。
  • FontAwesome 已移除,并由 CSS 中包含的 Tabler SVG 图标替换。仅包含默认 widget 使用的图标,因此扩展调试栏的包应该添加自己的图标。
  • 所有 widget 都添加了类型提示,因此你可能需要更新 widget。
  • widget 在打开选项卡时渲染,而不是在加载页面时渲染。

DataCollectors 的更改

  • TimeDataCollector 已从构造函数中移除,但添加了 setTimeDataCollector 方法。
  • useHtmlVarDumper 已移除。默认使用 HtmlDataFormatter。要使用纯文本,请将默认格式化程序设置为 DataFormatter

移除过时的方法

  • 移除 get/setBindAjaxHandlerToJquery(请改用绑定到 fetch/xhr
  • 移除 Assetic 集合(如果需要,请直接使用 getAssets()
  • 移除 RequireJS 支持
  • DebugBarVarDumper 中移除 captureVarrenderCapturedVar

方法/接口的重大更改

  • 所有内容都添加了类型提示,因此你可能需要更新自定义收集器的代码。
  • getAssets() 移除了 $type 参数,并且始终返回所有资源。
  • OpenHandler 要求始终设置 op 参数。
  • DataFormatterInterfaceformatVar 方法添加了第二个参数 deepStorageInterface 接口新增了 prune 方法

请访问 GitHub 查看完整的版本发布公告。

PHP
下一篇