php xdebug Общая идея - Как работает отладка, как нужно настраивать систему
Primary tabs
При настройке отладки с помощью xDebug в любой мыслимой конфигурации, нужно понимать, что:
- xDebug устанавливается как часть интерпртатора PHP, а значит он должен быть установлен и настроен, там где работает php (напр. в основной ОС, или в контейнере, или на удаленном сервере)
- xDebug может быть настроен на режим "работай всегда, когда работает PHP" (за это отвечат парамерт
xdebug.start_with_request), но обычно так не делают (это ресурсоемкий режим), поэтому для активизации xDebug-а для очередного запроса нужно, чтобы этот запрос передавал признак активации, таким признаком могут быть (в записимости от настроект и контекста):- параметр комадной строки
- Get-параметр в HTTP запросе
- Кука со специальным именем и/или значеним (опять же в HTTP запросе)
- xDebug отправляет данные о ходе выполнения программы в вашу IDE и ему нужно знать куда именно их отправлять (именно поэтому она показывает текущую строку состояние переменных и т.д.), для этого:
- всегда используется конкретный порт (задается числом можно по умолчанию, тогда явно не прописывают), это означает, что IDE тоже должна быть настроена на прослушивание этого порта (именно того, на который отладчик шлет данные, они должны совпадать).
- Если IDE и работающий PHP находятся на разных сетевых хостах, то может потребовать указать ещё и (помимо порта, если он отличен от того, что по умолчанию) адрес хоста, на который xDebug должен слать информацию
- В некоторый случаях IDE (зависит от типа) для взаимодействия с xDebug-ом может потребоваться установка плагина (так напр. дело обстоит в vscodium/vscode)
О тех же идеях на видео:
- Log in to post comments
- 210 reads