Настройка Open Server
- Редактируем php.ini В старой версии xdebug:
zend_extension = xdebug [xdebug] xdebug.default_enable = 0 xdebug.remote_enable = 1 xdebug.remote_autostart = 0 xdebug.remote_port = 9000 xdebug.remote_connect_back = 1 xdebug.profiler_enable = 0 xdebug.profiler_enable_trigger = 1 xdebug.profiler_output_dir = "%sprogdir%/userdata/temp/xdebug/" xdebug.profiler_output_name = "cachegrind.out.%H%R" xdebug.idekey = ""
В новой:
zend_extension = xdebug [xdebug] xdebug.mode = develop,debug xdebug.client_host = "localhost" xdebug.client_port = 9003 xdebug.discover_client_host = on ;0 Criticals Errors in the configuration ;1 Errors Connection errors ;3 Warnings Connection warnings ;5 Communication Protocol messages ;7 Information Information while connecting ;10 Debug Breakpoint resolving information ;xdebug.log_level = 7 xdebug.output_dir = "%sprogdir%/userdata/temp/xdebug" xdebug.start_with_request = "yes"
- Перезапускаем OpenServer.
Настройка PhpStorm
- Убеждаемся, что в Settings → Languages & Frameworks → PHP → Debug для Xdebug прописан порт 9000 и включена опция Can accept external connections:
- С помощью меню Run → Web Server Debug Validation проверяем настройку отладчика
Настройка браузера
Для старта отладки из браузера я использую Chrome расширение Xdebug helper, для других браузеров должно быть что-то похожее.
Процесс отладки
- В PhpStorm включаем прослушку порта отладчика:
- В нужном месте ставим брикпойнт:
- В браузере открываем сайт и стартуем отладочную сессию
- Перезагружаем страницу.
- При первом старте отладчика, PhpStorm предложит принять входящее соединение, жмём Accept:
И попадаем в отладочный режим
Профилирование
Для профилирования есть:
QCacheGrind (KCacheGrind) Windows
KCachegrind ( Linux)
Qcachegrind (Mac OS X)
Для профилирования необходимо установить xdebug.mode = profile