[Из песочницы] Отладка с помощью XDebug и PhpStorm (дополнение)
Доброго времени суток, %username%! Прочитал сегодня статью «Отладка с помощью XDebug и PhpStorm на примере сайта 1С-Битрикс». В ней автор использует «зеленого жука» для запуска отладки. В комментариях предложены еще несколько методов запуска отладки, такие как специальные закладки, различные плагины и т.д. На мой взгляд, все это неудобно, к тому же есть наиболее простой и удобный вариант. Я мог бы предложить его в комментариях к статье, но, увы, в read-only это невозможно. Посему вынужден писать отдельную статью.У xdebug есть возможность автостарта, без всяких премудростей. Достаточно просто расставить breakpoint’ы и открыть Ваше приложение в браузере, xdebug будет подхватывать старт сам.
Итак, моя конфигурация:
Веб-сервер — OpenServer 4.8.8 PHP 5.4.17 XDebug 2.2.3 IDE PhpStorm 7.1. 1. Настройка XDebugВ php.ini подключаем расширение и устанавливаем параметры: zend_extension=»%путь до php%/ext/php_xdebug.dll» ; эта опция как раз и отвечает за автостарт xdebug.remote_autostart=on xdebug.remote_enable=on xdebug.remote_handler=«dbgp» xdebug.remote_host=«localhost» ; порт может быть и 9000, но у openserver он зарезервирован под php xdebug.remote_port=9001 xdebug.remote_mode=req ; ключ IDE (может быть любым) понадобится позже xdebug.idekey=«PHPSTORM» 2. Настройка PhpStorm Настраиваем интерпретатор, если у вас это еще не сделано.
Далее добавляете сервер, если вы сервер локальный, то пишете в поле Host — localhost, если удаленный то адрес удаленного хоста. Имя хоста здесь и в php.ini должно совпадать.
Настраиваем XDebug. Порт берем из php.ini (xdebug.remote_port). Если вам не нужно чтобы XDebug останавливался на первой строчке приложения, отключаем два нижних чекбокса.
Здесь значения так же берем из php.ini: IDE key → xdebug.idekey, Host → xdebug.remote_host, Port → xdebug.remote_port.
На этом настройка завершена, можно пользоваться.
Использование Для начала работы расставляете breakpoint’ы, включаете прослушку порта XDebug и открываете ваше приложение.
Breakpoint’ы будут ловиться автоматически, без необходимости тыкать в «зеленого жука». Надеюсь информация кому-нибудь пригодится.
На этом все, спасибо за внимание.
P.S. Статья уже около года висела в песочнице, но до сих пор актуальна, поэтому публикую ее. Спасибо jeston за приглашение.