PHP Xdebug VSCode-ban

Szükséges:

  • Telepített VSCode
  • valamilyen (W)AMP rendszer (AMPPS, Bitnami, EasyPHP, WampServer, XAMPP, Neard, WAMP.net, stb…)

Xdebug bővítmény beállítása PHP-hoz

Nem mindegyik WAMP rendszer tartalmazza az Xdebug PHP bővítményt, ill. az is lehet, hogy tartalmazza, de nincs bekapcsolva. A beállítások mindegyik rendszernél ugyanazok.

phpinfo() függvény segítségével ellenőrizni lehet, hogy telepítve van-e.

<?php
  phpinfo();
?>

PHP működő Xdebug kiterjesztéssel

A phpinfo() függvény által generált kimenet vége felé további részletes információk vannak az Xdebug aktuális beállításairól.

Ha nem látható a “with Xdebug v2.x.x.” szöveg, akkor ezen a ponton több lehetőség is van:

  • az Xdebug nincs telepítve (hiányzik a php_xdebug-v.X.X.X-Y.Y-vcZZ.dll állomány a PHP ext mappájából)
  • meg van az Xdebug, de nincs bekapcsolva (php.ini állományban)
  • be is van kapcsolva, de nem megfelelő a konfigurációja (php.ini)

Xdebug telepítése

Egy darab .dll fájlt kell a PHP telepítés ext mappájába másolni. A fájl letölthető az xdebug.org oldalról. A fájl pontos verzióját legegyszerűbben az Xdebug varázslóval lehet megállapítani. A phpinfo() függvény teljes kimenetét be kell másolni a varázslóba, ami utána megadja, hogy melyik fájlt kell letölteni.

Xdebug kiterjesztés bekapcsolása

Egy sornyi bejegyzést kell elhelyezni a php.iniállományban:

zend_extension = c:\Users\zeon\desktop\php\ext\php_xdebug-2.6.0-7.0-vc14.dll

A php.ini -ben általában be van állítva az extension_dir beállításban a bővítmények mappája, ezért az xDebug varlázsló által javasolt teljes elérési út és fájlnév helyett célszerűbb csak ennyi írni:

zend_extension=xdebug-2.6.0-7.0-vc14

Xdebug konfiguráció

További két sor szükséges php.ini konfig fájl [xDebug] szekciójába:

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

A php.ini fájl mentése utána a webszervert újra kell indítani.

Teljesítmény

Sajnos az xDebug nincs jó hatással a teljesítményre, az oldalbetöltési idők jelentősen megnövekedhetnek, különösen az xdebug.remote_autostart = 1 beállítás hatására. Célszerű ezért kikapcsolni a bővítményt, amikor nincs rá szükség.

Másik lehetőség az xdebug.remote_autostart = 0 beállítás alkalmazása, ekkor a Chrome böngészőbe telepíthető Xdebug helper bővítmény bekapcsolásával lehet ugyanazt az eredményt elérni (ilyenkor viszont nem fog menni a CLI-s debuggolás, mert az is igényli ezt a beállítást).

VSCode beállítása PHP Xdebug használatához

  1. VScode-ban telepíteni kell a Felix Becker féle PHP Debug bővítményt:

PHP Debug bővítmény VSCode-ban

  1. Hozzunk létre egy PHP-s projektet, egy index.php állománnyal, némi PHP kóddal.
  2. Debug konfiguráció hozzáadása:

Debug configuration

Két konfigurációt add hozzá alapértelmezés szerint:

  • Listen for XDebug (böngészőhöz)
  • Launch currently open script (terminálból futtatot szkriptekhez)

A “Launch currently open script” konfigurációt ki kell egészíteni a képen látható módon a php.exe elérési útjával:

"stopOnEntry": true,
"runtimeExecutable": "c:\\Users\\zeon\\desktop\\xampp7\\php\\php.exe"

A "stopOnEntry": true elhagyható, hatására a végrahajtás nem csak az első töréspontnál (breakpoint) fog megállni, hanem rögtön az első sornál.

PHP Debug használata

1. Töréspont elhelyezése (F9)

2. Debug konfig kiválasztása (Listen for XDebug vagy Launch currently open script)

3. Debug indítása (F5)

4. Debugging (F5, F10, F11, …)

Launch currently open script

Launch currently open script esetén DEBUG CONSOLE-ra fog írni a program:

Launch currently open script

Listen for XDebug

  1. Böngészőben töltsük be az oldalt (pl. http://localhost/index.php)
  2. Debug indítása (F5)
  3. Böngésző frissítése (F5)

Listen for XDebug

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *