【问题标题】:Does a `pry` equivalent exist for php?php 是否存在“pry”等价物?
【发布时间】:2013-04-19 20:49:39
【问题描述】:

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

【问题讨论】:

  • 几乎是REPL for PHP的复制品,不要求交互式调试。

标签: php debugging xdebug read-eval-print-loop pry


【解决方案1】:

我完全明白你的意思。在迁移到 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 也是 PHP 的另一个不错的 REPL,类似于 Pry。

【讨论】:

  • 绝对优秀的发现。非常感谢您分享这个,因为它是一个比迄今为止任何其他假设或发现的更好的解决方案。
  • 没问题。我很高兴自己找到了它。 Pry 是我们认为在 Ruby 社区中理所当然的优秀工具。寻找像 Pry 这样好的 REPL 是我开始学习 PHP 时做的第一件事。
  • 不开玩笑。我很高兴几个月前我离开了 PHP。在过去的一年中,我们不得不在几个大型项目中使用 PHP 几个月(之前我已经使用了几年),但考虑到一些问题,我们决定回到红宝石商店。我们又回到了曲速前进。尽管如此,如果发生任何事情,肯定知道这一点是件好事!在构建我们的 php 纸牌屋时,我们都可以使用任何可能的帮助... ;)
  • 酷。是的,很高兴知道无论您选择哪种语言,您都可以使用好的工具!
【解决方案2】:

是的。叫做 dephpugger

https://github.com/tacnoman/dephpugger

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

【讨论】:

  • 我从未使用过 PsySH。但是 Dephpugger 相当于 ruby​​ 的 byebug 或 python 的 ipdb。您也可以轻松安装。
【解决方案3】:

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

【讨论】:

  • 当然,我对 xdebug 很熟悉,我们也使用它,但我们只是更喜欢“撬动”的东西,因为它的方法具有强大的功能以及您可以利用的快速方式调试时在 shell 中。
【解决方案4】:

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

【讨论】:

    【解决方案5】:

    我没有研究过 Ruby。

    但是PHP调试可以通过

    *)

    带有 Firebug 和 FirePHP 的 WAMP 服务器

    【讨论】:

      【解决方案6】:

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

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

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

      如果有兴趣,请查看支持调试的可用 PHP IDE: What is the best IDE for PHP?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-15
        • 1970-01-01
        • 1970-01-01
        • 2012-11-17
        • 2010-09-24
        • 2019-03-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多