VSCode и Xdebug в настройке среды Windows 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:\tools\xdebug.log"

Любой совет будет принят с благодарностью


person Julian Mourell    schedule 02.12.2020    source источник
comment
Используйте параметры конфигурации Xdebug 3 - они ОТЛИЧАЮТСЯ от того, что использует Xdebug 2 (который у вас есть в вашем php.ini). Проверьте документацию по обновлению и измените конфигурацию: xdebug.org/docs/upgrade_guide   -  person LazyOne    schedule 02.12.2020
comment
Спасибо, что решили это для меня. Я не осознавал, что все, что я читал, устарело, если бы я читал документы более внимательно, спасибо за вашу помощь.   -  person Julian Mourell    schedule 02.12.2020
comment
Xdebug 3 был выпущен всего около 1 недели назад. Почти все туториалы будут устаревшими в этом отношении (если только автор не следил за этим и не позаботился об этом, что бывает редко), просто не так много людей ожидало бы таких изменений в параметрах конфигурации и просто изменило бы конфигурацию. Эти изменения были необходимы: они проясняют некоторые недоразумения (не так много людей действительно читают документы, чтобы увидеть, что делает эта опция - они просто копируют-вставляют, не задумываясь, и следуют методу проб и ошибок)   -  person LazyOne    schedule 02.12.2020


Ответы (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.

person Julian Mourell    schedule 02.12.2020
comment
Да, порт по умолчанию был изменен с 9000 на 9003, так как он часто конфликтует (в Linux и Mac) с php-fpm, который также использует этот порт. Вы можете сказать Xdebug использовать любой порт, который вы хотите (xdebug.client_port), даже оригинальный 9000. - person LazyOne; 02.12.2020