buggregator / trap
用于调试PHP应用程序的简单而强大的工具。
Requires
- php: >=8.1
- ext-filter: *
- ext-sockets: *
- clue/stream-filter: ^1.6
- nunomaduro/termwind: ^1.15 || ^2
- nyholm/psr7: ^1.8
- php-http/message: ^1.15
- psr/container: ^1.1 || ^2.0
- psr/http-message: ^1.1 || ^2
- symfony/console: ^6.4 || ^7
- symfony/var-dumper: ^6.3 || ^7
- yiisoft/injector: ^1.2
Requires (Dev)
- dereuromark/composer-prefer-lowest: ^0.1.10
- ergebnis/phpunit-slow-test-detector: ^2.14
- friendsofphp/php-cs-fixer: ^3.54
- google/protobuf: ^3.23
- pestphp/pest: ^2.34
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.5
- phpunit/phpunit: ^10.5
- roxblnfk/unpoly: ^1.8.1
- vimeo/psalm: ^5.11
- wayofdev/cs-fixer-config: ^1.4
Suggests
- ext-simplexml: To load trap.xml
- roxblnfk/unpoly: If you want to remove unnecessary PHP polyfills depend on PHP version.
- dev-master
- 1.10.1
- 1.10.0
- 1.9.0
- v1.8.0
- v1.7.5
- 1.7.4
- 1.7.3
- 1.7.2
- 1.7.1
- v1.7.0
- 1.6.1
- 1.6.0
- 1.5.0
- 1.4.6
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.4.0
- 0.3.1
- 0.3.0
- 0.2.1
- 0.2.0
- 0.1.1
- 0.1.0
- dev-release-please--branches--master--components--trap
- dev-new-frontend
- dev-ci/mutation-testing
- dev-fix-link-to-logo
This package is auto-updated.
Last update: 2024-09-17 17:35:25 UTC
README
用PHP革命化您的调试体验
Buggregator Trap
Trap 是一个与 Buggregator 服务器一起使用以增强调试体验的包。
Trap 包括
- 一组与任何 Buggregator 服务器直接交互的功能。
- Symfony VarDumper 的扩展,安装 Trap 后立即生效。
- 一个精简版的 Buggregator 服务器,不需要 Docker,专为本地使用。
目录
安装
要在您的 PHP 应用程序中安装 Buggregator Trap,请使用 Composer 将包添加为项目中的 dev 依赖项
composer require --dev buggregator/trap -W
就这样。Trap 已准备好使用。
Phar
有时您的项目可能与 Trap 的依赖项冲突,或者您可能对仅使用本地服务器(例如,分析本地分析器文件)感兴趣。在这种情况下,请考虑将 Trap 作为 Phar(一个自包含的 PHP 可执行文件)安装。使用 wget
wget https://github.com/buggregator/trap/releases/latest/download/trap.phar chmod +x trap.phar ./trap.phar --version
使用 Phive
phive install buggregator/trap
概述
Buggregator Trap 为您的代码提供了一套工具。首先,只需在您的包中包含 Buggregator Trap 就可以增强 Symfony Var-Dumper 的功能。
如果您已经使用过 google/protobuf
,您可能知道它有多令人不快。现在让我们比较 protobuf-message 的输出:左边(带有 trap)和右边(没有 trap)。
这种同时紧凑且信息丰富的输出格式在 Buggregator 服务器界面中也将同样紧凑且信息丰富。现在,处理 protobuf 变得有趣。
Buggreagtor Trap 包含一个控制台应用程序 - 一个迷你服务器。应用程序完全用 PHP 编写,无需在系统中安装 Docker。它可能看起来与 symfony/var-dumper
服务器一样,但它不一样。Buggregator Trap 具有更广泛的调试消息处理程序(“陷阱”)。
- Symfony var-dumper,
- Monolog,
- Sentry,
- SMTP,
- HTTP 摘要,
- Ray,
- 任何原始数据
您可以轻松地可视化和分析有关代码库中各种元素的控制台信息。
以下是您可以使用 Trap 预期的控制台输出预览
此外,您还可以在代码中手动设置陷阱。使用 trap()
函数,该函数几乎与 Symfony 的 dump()
一样,但将配置转储器以将转储发送到本地服务器,除非提供其他用户设置。
trap()
还有很多有用的选项
// Limit the depth of the dumped structure trap($veryDeepArray)->depth(3); foreach ($veryLargeArray as $item) { // We don't need to dump more than 3 items trap($item)->times(3); } // Dump once if the condition is true trap($animal)->once()->if($var instanceof Animal\Cat);
提示
开发中的功能:添加标志 --ui
以在无需 Docker 的情况下提升 Buggregator 服务器 Web 界面。
我们重视产品代码库的质量,并努力提供最佳的用户体验。Buggregator Trap 已通过概念验证阶段,现在已成为 Buggregator 生态系统的重要组成部分。我们对整个生态系统的开发有着宏伟的计划,如果您愿意加入这段旅程,我们将不胜荣幸。
用法
成功安装 Buggregator Trap 后,您可以通过以下命令启动调试过程
vendor/bin/trap
此命令将启动 Trap 服务器,准备接收任何调试消息。一旦捕获到调试消息,您将在此终端看到关于它的方便的报告。
然后只需在您的代码中调用 trap()
函数
// dump the current stack trace trap()->stackTrace(); // dump a variable with a depth limit trap($var)->depth(4); // dump a named variables sequence trap($var, foo: $far, bar: $bar); // dump a variable and return it $responder->respond(trap($response)->return());
注意:如果未设置,
trap()
函数将自动配置$_SERVER['REMOTE_ADDR']
和$_SERVER['REMOTE_PORT']
。
此外,这里还有一些快捷方式
tr(...)
- 等同于trap(...)->return()
td(...)
- 等同于trap(...); die;
如果未提供参数,它们将显示简短的堆栈跟踪、使用的内存和快捷方式调用之间的时间。
function handle($input) { tr(); // Trace #0 -.--- 3.42M $data = $this->prepareData($input); tr(); // Trace #1 0.015ms 6.58M $this->processor->process(tr(data: $data)); td(); // exit with output: Trace #2 1.15ms 7.73M }
默认端口
Trap 可以自动识别流量类型。因此,无需为不同的协议打开单独的端口。默认情况下,它使用与 Buggregator 服务器相同的端口:9912
、9913
、1025
和 8000
。但是,如果您希望使用不同的端口,可以使用 -p
选项轻松进行调整
vendor/bin/trap -p9912 --ui=8000
也可以使用环境变量来设置端点
TRAP_TCP_PORTS
- 用于 TCP 流量:9912,9913,1025,8000
TRAP_TCP_HOST
- 用于 TCP 主机(默认:127.0.0.1
)TRAP_UI_PORT
- 用于 Web 界面:8080
选择您的发送者
Buggregator Trap 提供各种“发送者”,指定转储将发送到何处。目前,可用的发送者选项包括
console
:此选项将转储直接显示在控制台。server
:选择此选项,转储将发送到远程 Buggregator 服务器。file
:这允许将转储存储在文件中,以供将来参考。
默认情况下,Trap 服务器设置为在控制台中显示转储。但是,您可以使用 -s
选项轻松选择您首选的发送者。
例如,要同时使用控制台、文件和服务器发送者,您将输入
vendor/bin/trap -s console -s file -s server
贡献
我们相信社区驱动的发展力量。以下是您可以如何做出贡献
- 报告错误:遇到故障?请在我们的问题跟踪器告诉我们。
- 功能建议:对改进 Buggregator Trap 有想法?创建功能请求!
- 代码贡献:提交拉取请求以帮助我们改进 Buggregator Trap 代码库。您可以在此处找到标记为“help wanted”的问题列表。
- 文档:帮助我们改进我们的指南和教程,以提供更流畅的用户体验。
- 社区支持:加入我们的Discord,并帮助他人充分利用 Buggregator。
- 传播信息:在社交媒体上分享您的 Buggregator 经验,并鼓励他人做出贡献。
- 捐赠:通过成为赞助人或进行一次性捐赠来支持我们的工作
请记住,每一个伟大的开发者都曾经是初学者。为开源项目做出贡献是您成为更好的开发者的旅程中的一步。所以,不要犹豫,开始做出贡献吧!
许可证
Buggregator Trap 是开源软件,许可协议为 BSD-3 许可。