[Gelöst] Erfahrungen PHP Entwicklungsumgebung mit "Visual Studio Code"
Hallo,
hat jemand Erfahrungen mit einer "Visual Studio Code" (Windows) Entwicklungsumgebung für PHP,
wobei PHP und Xdebug in einem Docker Container laufen?
Mit Docker nutze ich die devilbox.
Entsprechende Infos zur xdebug Konfiguration:
- https://devilbox.readthedocs.io/en/l...hp-xdebug.html
- https://devilbox.readthedocs.io/en/l...bug-win-vscode
Aber irgendwie klappt es nicht mit der VS Konfig.
Hatte auch gelesen:
- https://github.com/cytopia/devilbox/issues/769
- https://github.com/cytopia/devilbox/issues/746
hat das jemand laufen und evtl. noch Anrgungen?
Danke
Update:
Siehe Beitrag ""Visual Studio Code", Xdebug und Docker (devilbox)":
https://community.contao.org/de/show...l=1#post546242
Siehe Beitrag "VSCode - Remote Development with Docker (WSL 2) + devilbox":
https://community.contao.org/de/show...l=1#post546297
"Visual Studio Code", Xdebug und Docker (devilbox)
Vielen Dank.
Folgendes funktioniert jetzt bei mir:
- Docker als VM via Hyper-V (Windows 10 Pro) oder über "WSL 2"
- devilbox v.1.9.2 mit Apache 2.4.46, PHP 7.4.20 und mariadb 10.3.5
- VSCode mit einer lokalen Installation der "PHP-Debug" VSCode Erweiterung
In der devilbox, entsprechend der konfigurierten PHP Version, die php.ini überschreiben:
In z.B: "/devilbox/cfg/php-ini-7.4" mit folgender "xdebug.ini"
Code:
; PHP.ini configuration
;
[PHP]
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.remote_handler = dbgp
xdebug.remote_port = 9000
xdebug.remote_connect_back = 0
xdebug.client_host = 172.x.x.x
xdebug.idekey = VSCODE
xdebug.remote_log = /var/log/php/xdebug.log
Zitat:
Update/Hinweis:
wobei dann "xdebug.client_host" der IP Adresse
Mit Docker via WSL 2:
aus "vEthernet (WSL)" entsprechen sollte (s.a.: ipconfig).
Mit Docker via VM (Windows 10 Pro / Hyper-V):
aus "vEthernet (Default Switch)" entsprechen sollte (s.a.: ipconfig).
Anschließend die devilbox neu starten.
Im devilbox Dashboard unter "Info/PHP Xdebug Info" kann man die aktuelle Konfiguration einsehen-
In VSCode dann die Erweiterung PHP-Debug installieren mit folgender ".vscode/launch.json":
Code:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9000,
"pathMappings": {"/shared/httpd/phpdemo/web": "${workspaceRoot}/web"}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
wobei in "pathMappings" dann der jeweilige devilbox vhost angegeben wird - Hier z.B. "phpdemo".
Innerhalb des Verzeichnisses "phpdemo" dann mit Eingabe von "code ." VSCode starten.
Hinweis:
Innerhalb VSCode klappt dann der Xdebug Aufruf via "Listen for Xdebug".
Das CLI debugging via "Launch currently open script" klappt hier nicht,
da beim remote debugging der PHP Pfad im Docker container nicht angesprochen werden kann. Könnte man daher in der launch.json auch vernachlässigen.
see: https://github.com/xdebug/vscode-php...host-debugging
Liste der Anhänge anzeigen (Anzahl: 1)
Nächster Schritt:
Anscheinend ermöglicht die WSL 2 Nutzung (auch mit Docker) in dieser Hinsicht wohl doch weitere Möglichkeiten.
Obwohl ich das Docker Resources Handling via VM recht praktisch fand: s. Screenshot
Anhang 24735
Werde meine Docker Installation von der VM auf WSL 2 ändern
und dann die von lomex erwähnte Kombi VSCode / "Remote Docker" Extension probieren (in Verbindung mit den devilbox containern).
To be continued ...
VSCode - Remote Development with Docker (WSL 2) + devilbox
Zitat:
Zitat von
Franko
To be continued ...
Habe Docker jetzt über WSL 2 aufgesetzt (nicht mehr als VM).
Entsprechend folgender Vorgehensweisen funktioniert es dann bei mir:
Grundsätzliche Vorgehensweise:
https://github.com/cytopia/devilbox/...ment-558044181
Einige Detail Ergänzungen hierzu:
https://github.com/cytopia/devilbox/...ment-562858129
devilbox user Setting in VSCode "devcontainer.json":
https://github.com/cytopia/devilbox/...ment-568248510