четверг, 23 ноября 2017 г.

Интеграция Xdebug и PhpStorm 2017, удобная отладка

Я знаю, что на просторах интернета много постов и видео-уроков на тему как настроить xdebug в связке с phpstorm. Решил и я внести свой вклад в эту проблему, вдруг кому-нибудь поможет.
У меня есть:
  1. kubuntu 16.04;
  2. apache 2.4;
  3. phpbrew;
  4. php 7.0.17;
  5. xdebug 2.5.1;
  6. phpstorm 2017.1;
Поехали!

1 Установка xdebug с помощью phpbrew

Если у вас даже не установлен phpbrew то сначала почитайте статью Как установить и настроить phpbrew.
Если все хорошо, то Вам останется только выполнить одну команду.
$ phpbrew ext install xdebug
Здесь важно отметить, то что если у вас php7 то эта команда выполнится нормально, но если у вас более ранняя версия php, то xdebug должен соответствовать вашей версии php, чтобы убедиться в том какая версия xdebug нужна именно вам придется погуглить.

2. Настройка xdebug в php.ini

Если вы не знаете где хранится ваш php.ini файл, то нужно набрать одну простую команду
$ php -i | grep php.ini
Если по каким то причинам вы не можете исполнить команду выше, то просто сделайте файл test.php и напишите в нем

<?php
phpinfo();
 
Теперь откроем файл и в разделе [Xdebug] нужно добавить следующую конфигурацию

zend_extension="/home/kosuha/.phpbrew/php/php-7.0.17/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so"
xdebug.remote_enable=1
xdebug.profiler_enable=1
xdebug.profiler_output_dir="/home/kosuha/temp"
xdebug.auto_trace = On
xdebug.idekey = "PHPSTORM"
 
Если ваша версия php совпадает с моей и она установлена через phpbrew, то моя настройка должна полностью совпасть с вашей, но если версия отличается то для значения zend_extension путь к xdebug.so может немного измениться в зависимости от того в какой директории находится ваш php.

Также открыть конфигурационный файл php.ini можно автоматически внутри phpstorm следующим образом:

File->Settings->Languages & Frameworks->PHP

Здесь находим около выбранного интерпертатора PHP кнопку с надписью "...". Жмакаем на эту кнопку и видим ссылочку "Configurations file .... open in Editor", если нажать на "Open in Editor" и закрыть все окна, то php.ini уже должен будет быть открыт в редакторе..
Но я немного скакнул вперед на самом деле мы же еще не настроили интерпретатор php для проекта который мы собрались дебажить.

3 Настройка интерпретатора для проекта

Открываем
File->Settings->Languages & Frameworks->PHP
Здесь в разделе CLI Interpreter должен быть установлен ваш интерперетатор php, если не установлен, тогда жмем "..." и выбираем путь к вашему бинарному php файлу..
Здесь важно проверить, чтобы под надписью "PHP executable" стояла надпись "Debugger: Xdebug 2.5.1", если там стоит No debugger проверьте вывод phpinfo(); подключен ли там Xdebug или нажмите кнопку с синими стрелочками для перезагрузки конфигурации.
У меня по умолчанию phpsotrm не определил xdebug, хотя он точно был настроен, но после нажатия синих стрелочек обновления конфигуркции сбоку от поля PHP executable все стало нормально.

4 Настройка интеграции xdebug в Phpstorm

Открываем
File->Settings->Languages & Frameworks->PHP->Debug
Здесь в разделе xdebug по большому счету можно оставить все по умолчанию, если только вы не меняли порт по умолчанию с 9000 на какой нибудь другой..

5 Установка расширения для Google Chrome Debug Helper

Без этого расширения у меня не заработала отладка, поэтому нужно его скачать
Debug Helper.

6 Как использовать отладку

Итак к этому моменту у нас все должно быть настроено... теперь остается только научиться всем этим пользоваться а это тоже не очень то просто.
Для начала на расширении Debug Helper в хроме нужно нажать правой кнопкой, выбрать параметры и настроить IDE key выбрать Xdebug и phpsotrm.
После этого в PhpStorm нужно нажать
Run->Start Listning for PHP Debug Connections
Дальше, чтобы шторм останавливал выполнение на первой точке останова нужно выбрать в меню следующий пункт
Run->Break at first line in PHP scripts
По идее этой настройки должно быть вполне достаточно, чтобы информация поступала в шторм..
Остается только зайти в хром и кликнуть на значке Debug Helper выбрать Debug и перезагрузить страницу, автоматически PhpStorm должен принять поток отладки, нажимаем кнопку OK и получаем последовательно все отладочную информацию по нужным нам точкам останова.

Комментариев нет:

Отправить комментарий

Linux командная строка узнаем оставшееся место

Чтобы посмотреть общую картину того, сколько места осталось в системе можно выполнить команду: df -h Чтобы вывести на экран сколько мес...