Отладка приложения Laravel на VSCode

Кто-нибудь успешно настроил VSCode для отладки веб-сайта на основе Laravel? После изучения многочисленных статей и руководств я дошел до того момента, когда я могу попросить VSCode «Слушать XDEBUG», но я не смог выполнить отладку в стиле обычный в стиле VS, где я мог бы просто нажать F5, чтобы запустить текущий веб-сайт в моем любимом браузере, и он будет взламывать VSCode при достижении точки останова, как мы это делаем в полной версии Visual Studio или Eclipse.

На моем компьютере правильно настроены следующие вещи:

  • VSCode 1.25.1
  • XAMPP 1.8
  • XDEBUG (настроен и работает)
  • Расширение отладки PHP для VSCode

Я не уверен, какую конфигурацию запуска мне нужно использовать в моем 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). Квалифицирующее имя класса с пространством имен тоже бесполезно.

Я предполагаю, что это как-то связано с настройкой конфигурации запуска. Он пытается запустить активный скрипт как независимую единицу и, таким образом, не может найти определение классов фреймворка, расположенных в разных файлах. Надо как-то обеспечить запуск сайта как единого приложения.

Кто-нибудь сделал это успешно и сказал мне, что мне здесь не хватает?

"вторая конфигурация терпит неудачу. Она говорит мне, что не может найти класс контроллера ..." Ну ... конечно не получится. Вы пытаетесь выполнить свой контроллер (или любой другой текущий класс, над которым вы работаете) напрямую ... при обходе всей процедуры загрузки фреймворка (другими словами, она не обрабатывается через стандартный index.php) и без автозагрузчика композитора. Если вы хотите запустить все это из VSCode (отладчик + открытый URL-адрес в браузере) ... вам нужно будет жестко указать свой URL-адрес в конфигурации запуска (если это возможно, конечно)
LazyOne 04.08.2018 19:11
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
11
1
16 368
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Наконец-то он заработал. Вот вещи, если это кому-то еще понадобится.

  1. Убедитесь, что на вашем сервере Apache настроен и запущен XDEBUG.
  2. Установите расширение отладчика для вашего любимого браузера. Расширения доступны для Chrome, Edge и FireFox (их можно найти и установить из VSCode).
  3. Настройте 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}"
            }
        ]
    }
    
  4. Обновите указанную выше конфигурацию в соответствии с вашими локальными настройками, такими как адрес сайта, порт xdebug и т. д.
  5. Нажмите F5, и ваш сеанс отладки начнется. Браузер запустится автоматически, и вы сможете достичь своих точек останова.

Другие вопросы по теме