PsySH作为调试器

PsySH作为调试器
PsySH可以用来在脚本中设置一个断点,在这个断点处它将暂停并提供对shell的访问,以检查变量并在断点所在位置的上下文中运行命令。目前它不支持逐步调试(如xdebug),但在需要更少设置时也不那么复杂。
不幸的是,也不支持通过诸如Apache或nginx或PHP-FPM等Web服务器进行调试。只有从命令行或通过PHP内置的Web服务器运行PHP脚本时才支持调试。如果您有兴趣帮助添加此功能,请参阅Github问题121
要使用PsySH作为调试器,请将其安装为Composer依赖项或直接在您的项目中包含Phar:
require' / path / to / psysh ');
然后,把这一行放到你想要有断点的脚本中:
eval\ Psy \ sh());
......这只是一种较短的说法:
提取\ Psy \ debug(get_defined_vars()));
当你的脚本达到这一点时,执行将被暂停,你将被放入PsySH shell。您的程序状态已加载并可供您检查和试验。
Pro Tip™:您不必使用get_defined_vars......您可以将任何您想要的内容作为调试环境传递给您:
$ result = \ Psy \ debug([ ' app ' => $ myApp ]);
如果从类上下文中启动调试shell,则可以传递可选的第二个参数以将绑定对象添加到shell。这是非常有用的,因为您可以$this在调试shell中调用内容,并且您将可以完全访问当前上下文的私有和受保护成员:
\ Psy \ debug(get_defined_vars(),$ this);
如果您eval(\Psy\sh())从类上下文中调用快捷方式,则会$this免费获得绑定。
更多使用信息
posted @ 2020-12-11 14:59  roy1101  阅读(149)  评论(0)    收藏  举报