Кто-нибудь успешно настроил VSCode для отладки веб-сайта на основе Laravel? После изучения многочисленных статей и руководств я дошел до того момента, когда я могу попросить VSCode «Слушать XDEBUG», но я не смог выполнить отладку в стиле обычный в стиле VS, где я мог бы просто нажать F5, чтобы запустить текущий веб-сайт в моем любимом браузере, и он будет взламывать VSCode при достижении точки останова, как мы это делаем в полной версии Visual Studio или Eclipse.
На моем компьютере правильно настроены следующие вещи:
Я не уверен, какую конфигурацию запуска мне нужно использовать в моем launch.json. Две конфигурации, которые поставляются с расширением PHP Debug, выглядят следующим образом:
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
Хотя первая конфигурация работает правильно (я могу начать отладку в этом режиме в VSCode, затем запустить свой веб-сайт отдельно в браузере, и он достигнет точек останова), вторая конфигурация не работает. Он сообщает мне, что не может найти класс Controller (который является классом фреймворка Laravel). Квалифицирующее имя класса с пространством имен тоже бесполезно.
Я предполагаю, что это как-то связано с настройкой конфигурации запуска. Он пытается запустить активный скрипт как независимую единицу и, таким образом, не может найти определение классов фреймворка, расположенных в разных файлах. Надо как-то обеспечить запуск сайта как единого приложения.
Кто-нибудь сделал это успешно и сказал мне, что мне здесь не хватает?






Наконец-то он заработал. Вот вещи, если это кому-то еще понадобится.
Настройте launch.json так, чтобы он запускал два конфига параллельно. Это делается с помощью так называемого составные конфигурации. Вот мой, запускающий браузер PHP + XDEBUG и EDGE:
{
"version": "0.2.0",
"compounds": [
{
"name": "Launch & Debug",
"configurations": [ "Launch Program", "Launch localhost" ]
}
],
"configurations": [
{
"type": "php",
"request": "launch",
"name": "Launch Program",
"cwd": "${workspaceRoot}",
"port": 9000
},
{
"name": "Launch localhost",
"type": "edge",
"request": "launch",
"url": "http://localhost/public",
"webRoot": "${workspaceRoot}"
}
]
}
index.php) и без автозагрузчика композитора. Если вы хотите запустить все это из VSCode (отладчик + открытый URL-адрес в браузере) ... вам нужно будет жестко указать свой URL-адрес в конфигурации запуска (если это возможно, конечно)