Как я могу выполнить пошаговую отладку команды drush с помощью ddev и PhpStorm?

Мне нужно отладить команду drush в проекте ddev, но я не знаю, как это сделать. В ddev v0.18.0 отладчик PhpStorm вначале ломается, но не может найти связанный код.

1 ответ

PHPStorm предоставляет очень хороший способ сделать это, а ddev делает это очень просто с автоматической настройкой отладки.

Этот метод лучше всего подходит для сайта Drupal 8 с встроенным в него драйвером drush, как вы это делаете с настройками 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 сломается в вашей точке останова. (Конечно, вы можете выполнить эту команду разными способами, но дело в том, что вам нужно выполнить версию drush, которая продается в репо.

В более ранних версиях drupal вы можете просто временно поместить копию drush в репо, чтобы таким же образом решить проблему с отображением.

Обратите внимание, что Мэтт Глэймэн также написал сообщение в блоге на Xdebug по командной строке с DDEV

Также проверьте PHPStorm и снимите флажок "Игнорировать внешние соединения через незарегистрированные конфигурации сервера".

Другие вопросы по тегам