19

我对 ruby​​ 有点宠爱,并且习惯于使用令人惊叹pry的应用程序工具。我将一个应用程序锁定到 1 个线程,然后让 pry 在 httpd 控制台中弹出打开,然后能够找到很多问题的根源,但是我在 PHP 中找不到类似的东西。是否有类似或被接受的解决方案可以在 PHP 执行期间用于调试和跟踪数据结构等?

4

6 回答 6

17

我确切地知道你的意思。在迁移到 PHP 之后,我也错过了 Pry。到目前为止,PsySH看起来像是最像 Pry 的 PHP 的最佳 REPL。它具有反射功能,因此您可以使用诸如ls评估变量、常量、类等命令。它有一个帮助命令,类似于 Pry 的帮助命令,show-doc可让您阅读有关函数或对象属性的文档。您甚至可以查看任何对象的来源,就像 Pry 的show-source命令一样。还调试:

“PsySH 可以用作交互式调试器,就像 JavaScript 的调试器语句一样,让您免于无休止的 var_dump() 和 die() 迭代。只需将此行放在您想要断点的地方:

\Psy\Shell::debug(get_defined_vars());"

Boris也是类似于 Pry 的 PHP 的另一个很好的 REPL。

于 2014-04-24T02:04:48.217 回答
2

是的。叫 dephpugger

https://github.com/tacnoman/dephpugger

您也可以在终端和调试器中启动服务器。命令类似,n 到下一个,c 继续,等等...

于 2017-03-12T17:02:47.007 回答
0

我不是很喜欢 Ruby 和 pry,但据我了解 pry 是一个调试工具。为了调试 php,我使用了一个名为 wamp 的本地网络服务器和内置的 xDebug。结合 IDE:Netbeans 或 Eclipse,您可以在执行 php 脚本期间查看数据结构/对象。

于 2013-05-01T13:48:08.470 回答
0

我也在看类似撬的东西,但是这个帮助我实现了类似的目标:http: //proger.i-forge.net/Triggering_XDebug_session_from_command_line/ODd

于 2013-07-11T16:32:54.593 回答
0

PHP 与 Ruby 的工作方式不同,在您询问的上下文中很难进行比较。

检查运行时中的复杂结构是在 PHP 中通过调试完成的,这意味着客户端调试端(= PHP IDE)必须能够与运行 PHP 的服务器调试端通信(这通常通过使用特殊名称初始化 cookie 来完成,例如通过 URL DBGSESSID =123&dbgParam1=123)。

因此,Web 服务器上的 PHP 必须安装特殊的调试模块(如 XDebug),并且当调试客户端说“现在停止”时,Web 服务器会在某个断点处暂停执行,从而暴露任何本地、全局、静态等数据结构。

如果有兴趣,请查看支持调试的可用 PHP IDE: 什么是 PHP 的最佳 IDE?

于 2014-04-24T13:14:53.593 回答
0

我没有研究过 Ruby。

但是PHP调试可以通过

*)

带有 Firebug 和 FirePHP 的 WAMP 服务器

于 2014-04-24T09:22:36.007 回答