2

我需要在 ddev 项目中调试 drush 命令,但我不知道该怎么做。在 ddev v0.18.0 中,PhpStorm 调试器在开始时中断,但找不到相关代码。

4

2 回答 2

5

2020-12-28 更新:此答案已过时,因为 ddev 已在最新版本中为您设置 PHP_IDE_CONFIG 环境。一般来说,如果您已经进行了任何调试(这会创建 .ddev.site “服务器”/映射),那么一切都应该可以正常工作。有些人也更喜欢使用 vendor/bin/drush,因为它跳过了 /usr/local/bin/drush 的使用,它是 Drush 启动器。

-------- 原始答案 --------

PHPStorm 提供了一种非常好的方法来做到这一点,而 ddev 通过自动调试设置使其变得超级容易。

这种技术最适用于带有 drush 的 Drupal 8 站点,就像您使用 drupal-composer 设置一样。它假设 drush 被卖到 vendor/drush/drush。

这篇 PHPStorm 博客文章解释了该技术。

  1. 在 PHPStorm 中创建一个服务器(项目设置-> 服务器)。我的“服务器”名称是 d8composer。不管你怎么称呼它,你只需要以后使用它。
  2. 在 PHPStorm 服务器配置中,将宿主项目目录映射到 /var/www/html:

服务器路径映射

  1. 单击“侦听调试连接”按钮。

  2. 在您知道应该被 drush 命令击中的位置单击断点。

  3. 在容器 ( ddev ssh) 内,export PHP_IDE_CONFIG="serverName=d8composer"- 当然,您的容器将被命名为 d8composer 以外的名称。

  4. 在容器内部/var/www/html/vendor/drush/drush/drush uli(或您想要的任何命令)。PHPStorm 将在您的断点处中断。(当然,您可以通过多种方式执行该命令,但关键是您需要执行出售到 repo 中的 drush 版本。

在早期版本的 drupal 上,您实际上可以将 drush 的副本临时放入您的 repo 中,以同样的方式解决映射问题。

请注意,Matt Glaman 还写了一篇关于Xdebug Over the Command Line with DDEV的博客文章

于 2018-05-11T00:22:44.427 回答
0

还要检查 PHPStorm 并取消选中“通过未注册的服务器配置忽略外部连接”。

于 2019-02-28T15:33:00.450 回答