xdebug

xdebug Как работает отладка: Что именно нужно настраивать и где (IDE, ОС) - Общая идея

Вне зависимости от IDE/версии php и отладчика придется так или иначе обеспечить шаги:

  1. Установка самого иксдебага
  2. Подготовка IDE
  3. Уведомление PHP что нам нужен режим отладки (для чего есть разные варианты)

-- подробней об этих шагах см. видео (полезно для общего понимания задачи), а конкретные инструкции см. в справочнике

symfony Где проверяются доступны по аннотациям/атрибудем роля (security, vedor)

Задача

Напр. имеется доступ:

#[IsGranted('ROLE_USER')]

Надо узнать в каком пакете и как (какие данные извлекаются) происходит проверка авторизации
Общая задача: в целом кратко процесс проверки доступа

После общего решения также можно сравнить: чем отличаются проверки доступа для "реальной" авторизации и через loginUser()
в тестах

vscodium vscode PHP Плагины и расширения

Поддержка синтаксиса, переходов и дополнения:

Отладка (Xdebug):

Как устанавливать плагины

См. инструкцию по установке

phpstrom xdebug Несколько запросов процессов отладки - как переключаться

Переключаться можно на вкладках панели "Debug", при настройках по умолчанию она обычно находится внизу - см. внимательно.

Чтобы вкладок стало несколько надо, чтобы еще до завершения отладки одного запроса, пришел другой запрос.

Symfony\Component\Config\Exception\FileLocatorFileNotFoundException Ошибка при отладке DependencyInjection does not exist

Symfony\Component\Config\Exception\FileLocatorFileNotFoundException: The file "../src/DependencyInjection/" does not exist (in: "/var/www/config"

-- возникает, если запускать код в режие отладки xdebug-ом сразу после правки yml, чтобы исправить, нужно просто один раз после правки прогнать код без отладчика

xdebug Отладка запроса из другого docker контейнера (не с того, где IDE)

Проблема

Проблема заключается в том, что при запросе с GET-параметром (?XDEBUG_SESSION_START) из от одного микросервиса к другому (оба в разных контейнерах), сессия отладки в IDE на основной ОС не начинается (хотя IDE и ожидает соединения из контейнера).

При этом если делать тот же запрос (напрямую в контейнер микросервиса), напр. из postman-а - отладка работает нормально.

Конфиг xdebug-а внутри контейнера:

xdebug vscode docker Запуск и отладка из командной строки, терминала. Пример launch.json

Видео-обзор конфигурации ниже для запуска консольного скрипта: https://youtu.be/Br9l8yXNHZE

Конфиг xdebug

По аналогии с обычной установкой (см. наш пример для линукса) в xdebug.ini укажем 5 опций:

zend_extension=xdebug
xdebug.mode=debug
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
xdebug.idekey="netbeans-xdebug"

где:

xdebug Завершение сессии отладки, остановка работы после первой же точки останова (Step Into не работает). Как решить

Наблюдаем эту проблема в виртуальной машине, для связки PHP (xdebug) и NetBeans, решение в процессе.

Возможно имеет место какая-то несовместимость версий.

xdebug Warning: Header may not contain NUL bytes in Unknown on line 0 DEBUG SESSION ENDED

Warning: Header may not contain NUL bytes in Unknown on line 0
DEBUG SESSION ENDED

Глубоко в проблему не вникал. Возникает при остановке сессии отладки xdebug.
"Решили" удалением куков в браузере.

Pages

Subscribe to RSS - xdebug