Skip to content

Instantly share code, notes, and snippets.

@vmrfriz
Last active November 28, 2023 13:32
Show Gist options
  • Save vmrfriz/c2d6b85006beae31b516b83a73580500 to your computer and use it in GitHub Desktop.
Save vmrfriz/c2d6b85006beae31b516b83a73580500 to your computer and use it in GitHub Desktop.
XDebug v3 on VSCode

Требования

  • в результате выполнения команды php -v есть строка, которая начинается с with XDebug
    если строки нет, значит в папке ext в php лежит неподходящий файл библиотеки (dll) xdebug
  • тест на сайте xdebug говорит, что Xdebug installed: X.X.X, где X.X.X - это версия XDebug
    если xdebug не установлен, значит в php.ini неверно указан путь в zend_extension = C:/path/to/xdebug.dll
  • установленный в VSCode плагин PHP Debug
  • созданная в отладчике конфигурация по примеру из launch.json
    обратите внимание на порт и pathMapping
  • верно настроенные ключи в php.ini
    параметры в файле php.ini

Подсказка

Копировать php -i из консоли для теста на сайте XDebug на Windows можно командой php -i | clip

Комментарий из launch.json

Используйте IntelliSense, чтобы узнать о возможных атрибутах. Наведите указатель мыши, чтобы просмотреть описания существующих атрибутов. Для получения дополнительной информации посетите: https://go.microsoft.com/fwlink/?linkid=830387

Консольные команды

Чтобы использовать debugger для запуска php в терминале, нужно обхявить переменную окружения: export XDEBUG_TRIGGER=1

{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"W:/domains/cinema.local": "${workspaceRoot}/"
}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9003
}
]
}
; XDebug 2.6: https://stackoverflow.com/questions/53133005/how-to-install-xdebug-on-ubuntu
; xdebug.remote_autostart = 1
; xdebug.remote_enable = 1
; xdebug.remote_handler = dbgp
; xdebug.remote_host = 127.0.0.1
; xdebug.remote_log = /tmp/xdebug_remote.log
; xdebug.remote_mode = req
; xdebug.remote_port = 9003
; XDebug v3
zend_extension = w:\modules\php\PHP_7.4\ext\php_xdebug-3.0.4-7.4-vc15-x86_64.dll
[xdebug]
xdebug.mode=debug
xdebug.start_with_request = yes
xdebug.client_port = 9003
xdebug.client_host = "localhost"
xdebug.log = "%sprogdir%/userdata/temp/xdebug/xdebug.log" ; Это переменная из OpenServer
xdebug.cli_color = 1
xdebug.discover_client_host = 1
;xdebug.idekey = VSCODE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment