我需要在 ddev 项目中调试 drush 命令,但我不知道该怎么做。在 ddev v0.18.0 中,PhpStorm 调试器一开始就坏了,但找不到相关代码。
最佳答案
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。
This PHPStorm blog post解释该技术。
- 在 PHPStorm 中创建一个服务器(项目设置->服务器)。我的“服务器”名称是 d8composer。你叫它什么并不重要,你只是需要在以后使用它。
- 在 PHPStorm 服务器配置中,将您的宿主项目目录映射到/var/www/html:
单击“监听调试连接”按钮。
在您知道应该被 drush 命令击中的地方单击一个断点。
在容器内 (
ddev ssh
),export PHP_IDE_CONFIG="serverName=d8composer"
- 当然,您的名称将不同于 d8composer。容器内部
/var/www/html/vendor/drush/drush/drush uli
(或任何你想要的命令)。 PHPStorm 将在您的断点处中断。 (当然,您可以通过多种方式执行该命令,但关键是您需要执行存储库中提供的 drush 版本。
在早期版本的 drupal 上,您实际上可以临时将 drush 的副本放入您的存储库中,以同样的方式解决映射问题。
请注意,Matt Glaman 还在 Xdebug Over the Command Line with DDEV 上写了一篇博文
关于php - 如何使用 ddev 和 PhpStorm 逐步调试 drush 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50283253/