У меня есть установка PHP7.1 + nginx в Windows Linux Subsystem (WSL).
Я упоминаю WSL, так что в PhpStorm Xdebug настроен как удаленный отладчик, который подключается через порт 9000. Тем не менее WSL и PhpStorm используют одни и те же физические файлы.
Для проекта Symfony 4 я использую встроенный веб-сервер: bin/console server:run
Мне удалось настроить PhpStorm для приема подключений Xdebug. Когда соединение установлено, он запрашивает или сопоставления файлов. Я бы ожидал index.php
быть запрошенным, но запрошенное отображение файла:
vendor/symfony/web-server-bundle/Resources/router.php
,
Как сказано в документации внутри этого файла, этот файл реализует правила перезаписи для встроенного веб-сервера PHP. Хорошо.
Если я принимаю сопоставление с этим файлом — отладка начинается с router.php
идет на несколько строк дальше, и больше ничего не происходит. Это не прыгает на мой public/index.php
или не останавливается ни на одной точке останова.
Вопрос в том — как настроить отладку Symfony 4 с помощью Xdebug?
Может быть, что-то не так с отображениями или как?
Через https://www.jetbrains.com/help/phpstorm/override-server-path-mappings-dialog.html, Вы должны расширить свои сопоставления файлов. Наверное, router.php
была использована, поскольку это была первая найденная точка входа, но через этот первый файл вы можете увидеть структуру файла, которую использует WSL.
Итак: открытие диалогового окна отображения должно дать вам router.php где-то вниз по структуре с отображенным путем, который также находится где-то в более глубоком каталоге. Если вы добавили сопоставление для своей корневой папки с тем же сопоставлением, что и для router.php
, удаляя vendor/symfony/web-server-bundle/Resources/router.php
, ты должен быть сделан
Других решений пока нет …