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.
A phpinfo()
függvény segítségével ellenőrizni lehet, hogy telepítve van-e.
<?php phpinfo(); ?>
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 PHPext
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
- VScode-ban telepíteni kell a Felix Becker féle PHP Debug bővítményt:
- Hozzunk létre egy PHP-s projektet, egy
index.php
állománnyal, némi PHP kóddal. - Debug konfiguráció hozzáadása:
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:
Listen for XDebug
- Böngészőben töltsük be az oldalt (pl. http://localhost/index.php)
- Debug indítása (F5)
- Böngésző frissítése (F5)