我对 ruby 有点宠爱,并且习惯于使用令人惊叹pry
的应用程序工具。我将一个应用程序锁定到 1 个线程,然后让 pry 在 httpd 控制台中弹出打开,然后能够找到很多问题的根源,但是我在 PHP 中找不到类似的东西。是否有类似或被接受的解决方案可以在 PHP 执行期间用于调试和跟踪数据结构等?
6 回答
我确切地知道你的意思。在迁移到 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。
我不是很喜欢 Ruby 和 pry,但据我了解 pry 是一个调试工具。为了调试 php,我使用了一个名为 wamp 的本地网络服务器和内置的 xDebug。结合 IDE:Netbeans 或 Eclipse,您可以在执行 php 脚本期间查看数据结构/对象。
我也在看类似撬的东西,但是这个帮助我实现了类似的目标:http: //proger.i-forge.net/Triggering_XDebug_session_from_command_line/ODd
PHP 与 Ruby 的工作方式不同,在您询问的上下文中很难进行比较。
检查运行时中的复杂结构是在 PHP 中通过调试完成的,这意味着客户端调试端(= PHP IDE)必须能够与运行 PHP 的服务器调试端通信(这通常通过使用特殊名称初始化 cookie 来完成,例如通过 URL DBGSESSID =123&dbgParam1=123)。
因此,Web 服务器上的 PHP 必须安装特殊的调试模块(如 XDebug),并且当调试客户端说“现在停止”时,Web 服务器会在某个断点处暂停执行,从而暴露任何本地、全局、静态等数据结构。
如果有兴趣,请查看支持调试的可用 PHP IDE: 什么是 PHP 的最佳 IDE?