XAMPP, XDebug, Visual Studio Code en PHP debugging

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • clogie886
  • Registratie: Juli 2005
  • Laatst online: 18-02 20:41
Omdat ik PHP wil leren, wil ik de PHP debugging aan het werken te krijgen van Visual Studio Code, volgens de documentatie een fluitje van een cent........

PC: Windows 10 version 1703, x64 met alle updates geinstalleerd

Software:
  1. XAMPP for Windows, version 7.1.7 (PHP 7.1.7)
  2. XDebug
  3. Visual Studio Code, version 1.15.1 x64
Als eerste XAMPP geinstalleerd in c:\xampp - na het starten van Apache draait het via poort 80 en 443

Als tweede XDebug geinstalleerd.
phpinfo van XAMPP 'geplakt' in https://xdebug.org/wizard.php
  • Download php_xdebug-2.5.4-7.1-vc14.dll
  • Move the downloaded file to C:\xampp\php\ext
  • Update C:\xampp\php\php.ini and change the line
  • zend_extension = C:\xampp\php\ext\php_xdebug-2.5.4-7.1-vc14.dll
  • Restart the webserver
Als derde Visual Studio Code geinstalleerd, met volgende PHP extensions,
  • PHP Debug 1.11.1
  • PHP Extension Pack 1.0.1
  • PHP IntelliSense 1.5.0
.

XDebug is al geïnstalleerd maar nu moet ik ook de volgende settings toevoegen aan php.ini

[XDebug]
xdebug.remote_enable = 1
xdebug.remote_autostart = 1

Nu zijn de laatste regels in mijn php.ini geworden:

[XDebug]
zend_extension = C:\xampp\php\ext\php_xdebug-2.5.4-7.1-vc14.dll
xdebug.remote_enable = 1
xdebug.remote_autostart = 1

Via File / Preferences / Settings - path naar php.exe toevoegen
Aan user settings toegevoegd: "php.validate.executablePath": "C:\\xampp\\php\\php.exe",

Dit geeft de volgende user file:

{
"window.zoomLevel": 2,
"php.validate.enable": true,
"php.validate.executablePath": "C:\\xampp\\php\\php.exe",
}

Nu zijn we klaar met installeren en configureren, dus nu tijd voor te testen!

In c:\xampp\htdocs\debug\test.php staat het volgende test php file (met fouten!)

code:
1
2
3
4
5
6
7
8
<?php
$value=0;

if ($value==0) {
    echo "True"
} else {
    echo "False"
}


Zoals verwacht komt daar de volgende foutmelding in 'orange' op het scherm:
( ! ) Parse error: syntax error, unexpected '}', expecting ',' or ';' in C:\xampp\htdocs\Debug\test.php on line 6

Alles lijkt dus te werken MAAR ik verwacht ook de variabelen te zien te krijgen zoals ook op Youtube maar dat lukt mij nog steeds niet.

Wat heb ik al geprobeerd:
- andere php files geprobeerd in andere directories onder \htdocs\ , variables worden niet zichtbaar
- Visual Studio Code, version 1.15.1 x86, variables worden niet zichtbaar
- op een laptop geïnstalleerd (zelfde software config als PC) maar hetzelfde resultaat, variables worden niet zichtbaar
- Apache op poort 8080 gezet in plaats van 80, variables worden niet zichtbaar
- Windows Firewall uitgezet, variables worden niet zichtbaar
- diverse herinstallaties zowel op mijn PC als op de laptop, variables worden niet zichtbaar

Kortom de PHP debugging lijkt maar 'half' te werken maar zoals aangegeven, ook na diverse herinstallaties zie ik niet waar ik in de fout ga, waarom de variables niet zichtbaar worden zoals verwacht.

Wie weet wat ik verkeerd doe?

De overheid is niet de oplossing maar de oorzaak van veel problemen.


Acties:
  • 0 Henk 'm!

  • Bee.nl
  • Registratie: November 2002
  • Niet online

Bee.nl

zoemt

clogie886 schreef op maandag 21 augustus 2017 @ 14:00:
Alles lijkt dus te werken MAAR ik verwacht ook de variabelen te zien te krijgen zoals ook op Youtube maar dat lukt mij nog steeds niet.
Welk Youtube filmpje?
Wie weet wat ik verkeerd doe?
Misschien een triviale vraag, maar heb je wel een breakpoint gezet?

Acties:
  • 0 Henk 'm!

  • clogie886
  • Registratie: Juli 2005
  • Laatst online: 18-02 20:41
Youtube: YouTube: How To Debug PHP Code With XDebug And VS Code Windows 10

Breakpoints staan op regel 5 en 7

De overheid is niet de oplossing maar de oorzaak van veel problemen.


Acties:
  • 0 Henk 'm!

  • Flythe
  • Registratie: Augustus 2006
  • Niet online
De oranje error is een standaard output, die krijg je ook zonder xdebug. Als je het filmpje verder kijkt zie je dat hij zelf een fout maakt door de semi columns weg te laten (op 5:15). Wat voor resultaat heb je als je wel de semi columns in het script zet?

Acties:
  • 0 Henk 'm!

  • Bee.nl
  • Registratie: November 2002
  • Niet online

Bee.nl

zoemt

De oranje melding is juist php + xdebug. Zonder de extensie heb je alleen plaintext melding.

Acties:
  • 0 Henk 'm!

  • clogie886
  • Registratie: Juli 2005
  • Laatst online: 18-02 20:41
Als ik de semi columns in het script zet en ik bewaar het script en refresh mijn browser krijg ik "True" te zien op het scherm.

De overheid is niet de oplossing maar de oorzaak van veel problemen.


Acties:
  • 0 Henk 'm!

  • clogie886
  • Registratie: Juli 2005
  • Laatst online: 18-02 20:41
De launch.json zier er als volgt uit

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
    "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
        }
    ]
}

De overheid is niet de oplossing maar de oorzaak van veel problemen.


Acties:
  • 0 Henk 'm!

  • Mijzelf
  • Registratie: September 2004
  • Niet online
Heb je bij debuggen voor 'Listen for XDebug' gekozen?

Acties:
  • 0 Henk 'm!

  • clogie886
  • Registratie: Juli 2005
  • Laatst online: 18-02 20:41
Ja daar heb ik voor gekozen.

Een update:
Het lijkt erop dat de 'variables' pas zichtbaar in de debugger worden als het PHP script syntactisch correct is. Zit er ook maar een fout in het script (verwijder een ; ) dan zijn de 'variables' gelijk niet meer zichtbaar.

Ik was in de veronderstelling dat 'variables' altijd zichtbaar zouden zijn ook als het script syntactisch niet correct is. Dat blijkt dus niet zo te zijn - beginnersfoutje

Topic mag gesloten, lijkt op een foute aanname van mijn kant.

Iedereen bedankt.

De overheid is niet de oplossing maar de oorzaak van veel problemen.

Pagina: 1