В любой IDE для меня всегда важным являются три вещи: легкие и гибкие настройки интерфейса, ненавязчивость при работе и конечно удобство дебага. Есть еще ряд второстепенных параметров, однако сегодня речь пойдет именно об отладке в IDE PHPStorm от команда JetBrains, которые смогли в кратчайший срок покорить сердца простых PHP разработчиков своим продуктом. Тщательный подход к проектированию системы дал в результате замечательную платформу, которую я считаю лучшей среди IDE для разработки в PHP по всем моим трем критериям. Для тех кто решил перейти на PHPStorm я расскажу как настроить эту платформу для работы с Xdebug в составе Denwer. Я уже рассказывал как настраивать Ecplise PDT для работы с Denwer и Xdebug. Будем считать, что Вы прочли предыдущую статью и уже настроили Denwer для работы с Xdebug. Если вы еще не сделали этого, то прошу сюда в раздел «УСТАНАВЛИВАЕМ XDEBUG».
Теперь займемся настройкой PHPStorm:
Для начала создадим новый проект:
Созданный проект я расположил в папке c:\WebServers\home\localhost\www\FollowMe, соответственно он доступен по адресу http://localhost/FollowMe. Создадим файл index.php в проекте, и напишем в нем какой-нибудь код.
Проект создан, теперь займемся настройкой Xdebug и IDE для отладки нашего кода. О настройке Xdebug в Denwer можно прочитать здесь. Откроем настройки конфигурации отладки: Run->Edit Configuration.
Нажимаем на знак плюс для добавления новой конфигурации. Здесь нам предлагается на выбор ряд типов конфигураций. Среди них есть отладка в консоли, обычная отладка в браузере, отладка с использованием юнит-тестов (PHPUnit), отладка XSLT, JavaScript. Такой арсенал отладочных средств действительно впечатляет, и возникает желание протестировать все это в бою. Выбираем тип конфигурации «PHP on Server«, который соответствует «обычной» отладке Вашего веб-приложения используя браузер и IDE.
Нажимаем на кнопку выбора сервера. (Server->…) и видим новое окно. Здесь производятся настройки сервера. Напомню, что Denwer создает виртуальный диск (по умолчанию Z), который монтируется при запуске пакета, создавая зеркало главной папки (по умолчанию C:\WebServers\). Укажем в качестве присоединяемой папки Z:\home\localhost\www, т.е. корень сайта http://localhost/. И собственно сам URL сайта.
Переходим на вкладку Mapping, здесь настраиваем соответствие путей основой папки к URL сервера и папки проекта.
Сохраняем.
Далее следующие настройки:
— Custom web path: какой путь нужно открывать в браузере.
— Browser: выбрать из списка браузеров, либо настроить свой.
— Debug: настройка процесса отладки — ключ, точка останова на первой линии и дополнительные настройки маппинга путей.
— Настройка действий перед запуком отладки.
На этом настройка завершена. Устанавливаем точку breakpoint (Ctrl+F8) на любой строке кода и запускаем отладку (Shift+F9).
Если все настроено правильно, то проект должен был открыться в окне браузера и остановиться на указанной Вами строке.
Вот окно в процессе отладки:
Если у Вас в в процессе отладки не происходит остановки исполнения скрипта в breakpoint'ах, то тщательно проверьте конфигурацию сервера, xdebug и mapping'а в PHPStorm. Также замечена нестабильная работа при использовании GET запросов в URL. К моему счастью все мои проекты всегда используют ЧПУ, в которых нет GET запросов до преобразования в .htaccess. Gоэтому эту проблема для меня не актуальна.
Спасибо за внимание, легкого дебага.
А конфигурация PHP console для Denwer? PHPStorm в упор НЕ видит виртуальный диск!!
Подключение виртуального диска нужно только для маппинга путей, и в нем нет необходимости при отладки PHP Console приложения. В случае консольного запуска PHP скрипта, исполняемый файл должен указываться *только* в пределах папки проекта.
В любом случае PHP Storm должен «видеть» виртуальные подключаемые диски. Если же этого не происходит, то искать проблему на стороне Java-машины и каких-то проблем с ОС.
Наткнулся на данную новость случайно. Но я рад. Статья очень понравилась.. Очень интересно было читать:)
СПАСИБО ТЕБЕ — ЧЕЛОВЕЧИЩЕ!!!
Всё. В PhpStorm 102.206 такой метод отладки устарел. Теперь там всё намного проще))
Благодарствую!
А я уж год как тыкаю время от времени в Project Settings \ PHP \ PHP Home. Какой каталог с php.exe не выберу, а оно ошибку, не проходит диагностический скрипт.
Ну, думаю, не судьба… :( Одна из главных функций IDE — в утиль!
А тут вон оно как )))
Статья по настройке командной строки в PhpStorm http://plutov.by/post/command_line_php_storm
Подтверждаю предыдущий коммент — он дополняет эту статью. Спасибо обоим!