VSCode и Xdebug в настройке среды Windows Laravel Lighthouse

#php #laravel #visual-studio-code #xdebug #laravel-lighthouse

#php #laravel #visual-studio-code #xdebug #laravel-lighthouse

Вопрос:

Я пытаюсь настроить Xdebug для работы в VSCode в среде Windows с сервером на базе Lighthouse / Laravel. Мои настройки VSCode выглядят следующим образом

 {
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",

    "configurations": [
        {
            "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
        }
    ]
}
 

Я также пытался добавить туда pathMappings, но безуспешно

 "pathMappings": {
            "/graphql": "${workspaceRoot}/public"
        }
 

Я следил https://laracasts.com/series/visual-studio-code-for-php-developers/episodes/13 и добавил все предлагаемые там конфигурации. Когда я набираю php -v

 PHP 7.4.10 (cli) (built: Sep  1 2020 16:52:21) ( NTS Visual C   2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Xdebug v3.0.0, Copyright (c) 2002-2020, by Derick Rethans
 

Я вижу, что установлен Xdebug.
Мой php.ini выглядит так

 [XDebug]
zend_extension = "php_xdebug-3.0.0-7.4-vc15-nts-x86_64.dll"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 1
xdebug.remote_host=localhost
xdebug.idekey=VSCODE
xdebug.remote_log ="C:toolsxdebug.log"
 

Любые советы будут с благодарностью

Комментарии:

1. Используйте параметры конфигурации Xdebug 3 — они ОТЛИЧАЮТСЯ от того, что использует Xdebug 2 (который у вас есть в вашем php.ini). Проверьте документы по обновлению и измените свою конфигурацию: xdebug.org/docs/upgrade_guide

2. Спасибо, что решил это для меня. Я не понимал, что все, что я читал, устарело, следует более внимательно прочитать документы спасибо за вашу помощь.

3. Xdebug 3 был выпущен всего около 1 недели назад. В этом отношении почти все учебные пособия устарели (если только автор не следил за этим и не позаботился об этом, что случается редко), просто не так много пользователей ожидают таких изменений в параметрах конфигурации и просто изменяют конфигурацию. Эти изменения были необходимы: они устраняют некоторые недоразумения (не так много пользователей на самом деле читают документы, чтобы увидеть, что делает опция — они просто копируют-вставляют, не задумываясь, и следуют методу проб и ошибок)

Ответ №1:

Для всех, у кого есть подобная проблема, просто необходимо обновить мой php.ini.

 [XDebug]
zend_extension = "php_xdebug-3.0.0-7.4-vc15-nts-x86_64.dll"
xdebug.mode = debug
xdebug.start_with_request=yes
xdebug.idekey=VSCODE
 

В итоге получилось что-то вроде этого, даже не уверен, нужен ли сейчас idekey.
Это и измените порт на 9003, как это, по-видимому, изменилось в версии 3.

Комментарии:

1. Да, порт по умолчанию был изменен с 9000 на 9003 , поскольку он часто конфликтует (на Lunux и Mac) с php-fpm, который также использует этот порт. Вы можете указать Xdebug использовать любой порт, который вы хотите ( xdebug.client_port ), даже оригинальный 9000.