Настройка PHPStrom для отладки Drupal 8

Модуль Devel предоставляет функции dsm() и dpm() для вывода переменных. Но если проблема более сложная, то этого недостаточно.  Можно чрезвычайно упростить отладку, если прекращать выполнение кода с помощью контрольных точек, а затем запускать приложение пошагово. Все IDE поддерживающие отладку PHP кода, такие как Eclipse, Netbeans, PhpStorm и др., предоставляют функциональную возможность расставлять точки остановки (breakpoints) в коде. Но для того чтобы заставить их работать, нужно немного настроить IDE. В этой статье вы узнаете, как настроить PhpStorm 9, чтобы отлаживать Drupal 8. К концу статьи, у вас уже будет возможность устанавливать точки остановки.

Я предполагаю, что у вас уже есть установленный где-нибудь на локальном компьютере Drupal 8, и вы можете спокойно открыть его в браузере. В моем случае сайт на Drupal 8, доступен по адресу http://localhost/drupal8.

1. Настройка Drupal проекта в PhpStorm.

Откройте PhpStorm и выберите «Создать новый проект из существующих файлов» (Create New Project from Existing Files).

В следующем окне, выберите «Веб-сервер установлен локально, исходные файлы находятся в корневой директории» (Web server is installed locally, source files are located under its document root.) и нажмите «Далее».

На следующем шаге PhpStorm попросит вас выбрать корневую папку вашего проекта. У меня это папка /Users/neemehta/Sites/drupal8. Выделите нужную папку и нажимите на кнопку «Project Root», в верхней части окна. Нажмите кнопку «Далее».

После этого PhpStorm спросит вас, какой сервер нужно использовать. Если вы уже использовали PhpStorm с другими проектами, то у вас будет существующий сервер. Если вы используете PhpStorm в первый раз, то нужно добавить новый сервер. В этой статье мы будем создавать новый сервер.

Выберите пункт «Добавить новый локальный сервер» (Add new local server) и нажмите кнопку «Далее».

Заполните информацию о сервере. В поле «Имя» (Name) введите «localhost», а в поле «Корневой URL веб-сервера» (Web server root URL) введите «http://localhost». Нажмите на кнопку «Октрыть» и вы увидите страницу http://localhost в вашем браузере. Вполне возможно, что ваш Apache сервер откажет вам в доступе к http://localhost. В таком случае убедитесь, что у вас стоит галочка «Не проверять соединение с HTTP сервером» (Don’t check HTTP connection to server), перед тем как нажать кнопку «Далее», иначе PhpStorm покажет ошибку.

На следующем шаге вам нужно указать путь по которому ваш Drupal сайт будет доступен. В моем случае это http://localhost/drupal8, поэтому в текстовое поле я ввел drupal8. Поставьте галочку «Обзор PHP настроек» (Review PHP settings) и нажмите «Далее».

Убедитесь, что вы используете нужную версию PHP. Если в системе установлено несколько версий, вполне возможно, что PhpStorm может использовать не ту версию PHP, которую использует Web-сервер. После того как вы все проверили нажмите «Готово».

После этого PhpStorm создаст новый проект для вашего Drupal 8 сайта.

2. Подготовка PhpStorm для работы с Drupal 8

Откройте PhpStorm -> Настройки (Preferences).

В поисковой строке напишите «PHP» и вы увидите кучу результатов. Нажмите на»Языки и структура» (Languages & Frameworks) -> PHP. В выпадающем списке «PHP версия» (PHP language level) выберите вашу PHP версию. В поле «Интерпретатор» (Interpreter), вы можете увидеть значение <no interpreter>. Если это так, нажмите на кнопку с изображением трех точек, напротив этого пункта.

Во всплывающем окне, нажмите на значок «+» в левом верхнем углу, чтобы добавить новый PHP-интерпретатор. Если версия интерпретатора, которую вы хотите добавить уже существует, то выберите ее. Если не нет, то нажмите на кнопку «Другие локальные» «Other Local». Добавить PHP версию, которую вы хотите использовать для вашего Drupal 8 сайта и нажмите «Ок».

PhpStorm вернет вас к предыдущему окну. Убедитесь, что выбрана нужная версия интерпретатора и нажмите на «Ок».

Откройте пункт меню «Файл» (File) -> «Настройки по умолчанию» (Default settings).

В поле поиска введите «Интерпретатор» (Intepreter). Нажмите в левой части на «Языки & Структура» (Languages & Frameworks). Убедитесь, что в правой части окна выбрана нужная версия PHP и нужный интерпретатор.

Введите в поле поиска «Drupal». Нажмите на «Языки & Структура» (Languages & Frameworks) -> PHP -> Drupal. Поставьте галочку «Включить интеграцию с Drupal» (Enable Drupal Integration) и укажите путь до установленного Drupal’а (Drupal installation path). Поставьте галочку «Set up PHP | Include paths». Выберите версию Drupal, то есть 8. И нажмите «Ок».

3. Установка и настройка XDebug

Для начала нужно установить сам XDebug. Мы не будем углублять в тему установки, на этот счет есть куча инструкций, вот некоторые из них для различных операционных систем (на английском языке, если постараться, то можно найти и на русском):

Вообще XDebug создаст свой конфигурационный файл xdebug.ini. Чтобы найти этот файл, выполните команду find xdebug.ini. Откройте этот файл. Но если вы все таки не смогли найти этот файл, то вы можете открыть конфигурационный файл PHP, который использует ваш сервер.

Добавьте в xdebug.ini, следующий код.

Перезагрузите ваш Веб-сервер и PHP-FPM сервис, если вы используете его. Далее, перейдите в корневую папку установленного Drupal сайта и создайте там файл info.php со следующим кодом:

Откройте этот файл в вашем браузере. В моем случае это http://localhost/drupal8/info.php. Вы должны увидеть информацию об используемом PHP и Веб-сервере.

Воспользуйтесь поиском и найдите на странице слово «xdebug». Убедитесь, что есть такой раздел и то, что на странице отображаются настройки, которые вы написали в xdebug.ini (php.ini) файл выше.

4. Настройка PhpStorm для отладки

Откройте пункт меню «Файл» (File) -> «Настройки по умолчанию»  (Default Settings).

В поле поиска введите «xdebug». Нажмите на «Языки & Структура» (Languages & Frameworks) -> PHP -> Debug. Убедитесь, что в Xdebug секции установлен 9000 порт. Нажмите «Ок».

Откройте пункт меню «Run» -> «Edit configuration».

Раскройте выпадающий список «Defaults» и нажмите на «PHP Web Application». Затем в правой части окна, нажмите на кнопку с изображением трех точек, напротив поля «Server».

После этого нажмите на кнопку «+», чтобы добавить новый сервер. Назовите его «localhost», и в поле «Хост» (Host), тоже напишите «localhost». Убедитесь в том, что в поле «Debugger», выбран «Xdegug». Нажмите на кнопку «Ок».

Вернувшись в предыдущее окно вы увидите, что в поле «Сервер» (Server) выбран «localhost». В поле «Start URL», введите адрес сайта, у меня это http://localhost/drupal8, и нажмите кнопку «Применить».

Нажмите кнопку «+» в левом верхнем углу и выберите «PHP Application».

Введите имя «localhost» и нажмите кнопку «Ок».

Перейдите на страницу https://www.jetbrains.com/phpstorm/marklets/ и нажмите на кнопку «Generate». После этого, вы увидите три ссылки «Start debugger», «Stop debugger» и «Debug this page», сохраните их в закладки.

После того как мы проделали все вышеуказанные шаги, PhpStorm может работать с Xdebug. Давайте поставим точки остановки и убедимся в этом. Перейдите в PhpStorm и нажмите на иконку трубки с жучком в правом верхнем углу, чтобы начать прослушивание соединение Xdebug.

Открой файл index.php в PhpStorm и поставьте точку остановки на следующей строке:

Чтобы поставить на точку нужно кликнуть на левой части этой строки (там где на рисунке сейчас красный кружок, у вас он появится после клика).

Перейдите в браузер, в котором добавили закладки и откройте свой сайт. Нажмите на закладку «Start debugger» и обновите страницу. После этого вас должно перебросить в PhpStorm и выполнение должно остановится в том месте где поставили точку.

Поздравляю! Теперь все настроено и вы можете заниматься отладкой своих модулей. Если вы чувствует, что пропустили какой-то шаг или застряли на одном из шагов, пишите в комментариях.

Комментарии

Добавить комментарий

  • Dries Buytaert

    не работает, пересмотрите статью

    • ZapevalovAnton

      Хороший коммент. Может напишите в чём именно дело и перестанете прикрываться чужим именем?