如何在 Atom 中启用 php-debug



我已经在 Atom 中安装了 php-debug + 它的 IDE 依赖项。当我设置断点时,调试视图打开,说调试器未附加,但是当我尝试这样做时,似乎 Atom 无法识别我安装了 php-debug 包并要求我安装调试器。

我在某些地方读到包上有一个切换调试设置,但我看不到该选项。

我正在使用 Atom1.27.0和 PHP 7.2.4:

PHP 7.2.4 (cli) (built: Apr 12 2018 02:49:03) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans
with Zend OPcache v7.2.4, Copyright (c) 1999-2018, by Zend Technologies

我可以提供 Xdebug 配置,但似乎问题出在 Atom 本身上?有人有这个问题吗?

非常简单

  1. 从 https://xdebug.org/download.php 下载 xdebug,适用于 Apache 的 TS 版本
  2. 将其复制到 php/ext 目录
  3. 在 php 中复制下面的文本.ini在所有其他扩展名下面

zend_extension="D:/wamp/php/ext/php_xdebug-2.6.1-7.2-vc15-x86_64.dll">
[xdebug]
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1 # 对生产服务器不安全
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req xdebug.remote_autostart=真

重新启动 Apache 并在<?php phpinfo()?>中找到"xdebug"字符串

  • 安装原子debug_ui,php_debug
  • 包> PHP 调试>切换
  • 应用断点并从浏览器运行PHP文件,仅此而已。

如果它要求远程 http://localhost/DIRECTORY_PATH_TO_PHP_FILE 路径 本地是 PHP 文件的目录路径。

几天前我收到了相同的消息......
断点被准确命中,由于浏览器的选项卡加载图标,我可以看到这一点,但Atom用户界面上没有任何反应。我所能做的就是单击停止或分离按钮,这导致 xdebug 结束会话并终止浏览器选项卡加载。
使用 PHP7.2.7, Xdebug 2.6 (Docker php-fpm-alpine);原子 1.26.1 x64


TLDR;PHP-debug扩展无法处理我在配置面板中输入的"路径映射"值。


Atom中打开开发控制台使我能够发现在 PHP 调试扩展中启动调试会话时出现的错误。

Atom Debug (PHP Debug) Session initiated
logger.js? [sm]:43 Atom Debug (PHP Debug) [TypeError: Cannot read property 'endsWith' of undefined
at Object.exports.generatePathMaps (/hom…]0: TypeError: Cannot read property 'endsWith' of undefined
at Object.exports.generatePathMaps (/home/me/.atom/packages/php-debug/lib/helpers.js:80:34)
at /home/me/.atom/packages/php-debug/lib/engines/dbgp/debugging-context.js:112:37
…

这促使我在Github存储库中阅读并迅速弄清楚发生了什么。

我所要做的就是更改我首先错误填写的"路径映射"文本字段值。文本字段需要一个 JSON 字符串,正如我们在这里看到的,路径映射应该是由对象组成的可迭代/数组。它必须像这样徘徊:

[{"localPath":"/home/me/projects/my-project","remotePath":"/var/www/my-project"}]

如果您有多个项目,请添加更多映射对象。请注意,此设置反映在 ~/.atom/.config.cson

这解决了问题,调试视图不再弹出,说没有附加调试器。

我在Atom 1.53.0,PHP 7.3和XDebug 2.9.8中也遇到了这个问题。我可以从netstat中看出XDebug正在连接到Atom,但是PHP调试选项卡中没有任何活动,控制台或PHP控制台中也没有消息来提示正在(或没有)发生的事情。

与Stphane不同,我没有定义任何路径图。但是从他的回答中得到了提示,我点击了PHP调试选项卡中的"路径映射"按钮。然后弹出一系列错误对话框,我一次可以解决一个。

就我而言,所有错误都是因为我签出的项目包含一些Unix符号链接,Windows不知道如何解释。我通过删除符号链接来解决它们,并将它们指向的文件和目录的副本复制到它们的位置。之后,PHP 调试窗格按预期工作 - 尽管调试器仍然显示"未安装调试器"。

Atom告诉我调试器没有附加,但我让它工作了。

我看到了 atom php-debug 教程,但遇到了调试器未附加等问题。

我想分享该教程未包含的配置:

Xdebug.ini autostart 和 idekey

首先在教程 xDebug 配置中。 将其配置为自动运行。

xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1    # Not safe for production servers
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true

但它让调试器为每个请求运行。 所以你可以像这样做

xdebug.remote_autostart=false

之后,您必须告诉调试器通过将其附加到 xDebug 配置来将调试发送到 Atom 的 API:

xdebug.idekey=xdebug-atom

如果你使用 php-fpm,你必须在重新启动 http 服务器之外重新加载它:

sudo systemctl reload php-fpm.service

具有正确 idekey 参数的浏览器扩展

之后安装浏览器插件,该插件附加一个cookie以告诉xDebug使此请求可调试。

如果您的插件没有 Atom 配置,

在浏览器中,扩展首选项执行以下操作:

IDE key: xdebug-atom

Atom 2 插件 启用和禁用 atom-ide-ui-feature-debug

之后在 Atom 编辑器本身:

在安装atom-debug-uiphp-debug之后。

从编辑 -> 首选项 -> 包

选择"包原子-IDE-UI设置"。

部分启用功能->启用调试器

使其从不启用

喜欢这个:

https://github.com/gwomacks/php-debug/issues/310#issuecomment-419751273

真正的断点

现在从包 -> 调试 -> 切换调试器

另一个注意事项是当你想在 Atom 中建立断点时。 有两种类型的断点。大蓝点小蓝点

只有小的适用于调试器。

像这里建议: https://learnwithdaniel.com/2019/06/atom-php-debugger/

使远程路径和本地路径相同

从浏览器发出设置请求后。 和原子询问您的远程/本地路径。

使它们相同

最新更新