Настройка xdebug: Open Server + PHPStorm + xdebug

Настройка Open Server

  1. Редактируем 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"
    
  2. Перезапускаем OpenServer.

Настройка PhpStorm

  1. Убеждаемся, что в Settings → Languages & Frameworks → PHP → Debug для Xdebug прописан порт 9000 и включена опция Can accept external connections:
  2. С помощью меню Run → Web Server Debug Validation проверяем настройку отладчика

Настройка браузера

Для старта отладки из браузера я использую Chrome расширение Xdebug helper, для других браузеров должно быть что-то похожее.

Процесс отладки

  1. В PhpStorm включаем прослушку порта отладчика:
  2. В нужном месте ставим брикпойнт:
  3. В браузере открываем сайт и стартуем отладочную сессию
  4. Перезагружаем страницу.
  5. При первом старте отладчика, PhpStorm предложит принять входящее соединение, жмём Accept:И попадаем в отладочный режим

Профилирование

Для профилирования есть:

QCacheGrind (KCacheGrind) Windows

KCachegrind ( Linux)

Qcachegrind (Mac OS X)