我在ruby上有点被宠坏了,我习惯使用惊人的pry
设施来应用。我将一个应用程序锁定为1个线程,然后让pry在httpd控制台中弹出,然后能够解决很多问题的底部,但是我找不到任何类似于PHP的可用内容。是否有类似或接受的解决方案适用于PHP,用于在执行期间调试和跟踪数据结构等?
答案 0 :(得分:15)
我确切地知道你的意思。转移到PHP后我也错过了Pry。到目前为止,PsySH看起来像PHP中最好的REPL,就像Pry一样。它具有反射,因此您可以使用ls
之类的命令来评估变量,常量,类等。它有一个帮助命令,类似于Pry' show-doc
,可以让您阅读文档关于函数或对象属性。您甚至可以查看任何对象的来源,就像Pry的show-source
命令一样。还调试:
" PsySH可以用作交互式调试器,就像JavaScript的调试器语句一样,可以避免无休止的var_dump()和die()迭代。只需将此行放在您想要断点的地方:
\精神科\壳牌::调试(get_defined_vars());"
Boris也是PHP的另一个很好的REPL,类似于Pry。
答案 1 :(得分:2)
答案 2 :(得分:0)
我并不是真正的Ruby和pry,但就我读到的主题而言,pry是一个debugtool。为了调试php,我使用一个名为wamp的本地web服务器和内置的xDebug。结合IDE:Netbeans或Eclipse,您可以在执行php脚本期间查看数据结构/对象。
答案 3 :(得分:0)
我也在寻找一个像撬一样的东西,但是这个帮助我实现了类似的东西: http://proger.i-forge.net/Triggering_XDebug_session_from_command_line/ODd
答案 4 :(得分:0)
答案 5 :(得分:0)
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?