19.9.2019
V tomto příspěvku budeme pokračovat psaním a laděním PHP skriptů ve Visual Studio Code. Minule jsme si ukázali jak ve VCode nainstalovat vhodné doplňky a jednoduše spustit PHP skript. Dnes si ukážeme jak kód PHP krokovat, včetně výpisu okamžitých hodnot proměnných apod. jak jsme zvyklí např. u vývojových nástrojů pro jazyk C/C++.
Především musíme mít nainstalovaný nástroj XDebug, který by měl být ve standardních repositářích většiny hlavních Linuxových distribucí. V Debianu ho najdeme jako balíček php-xdebug. Poté musíme ladění povolit v příslušném souboru php.ini. Cestu k němu zjistíme například z terminálu zavoláním
# php -i
což nám vypíše informace o konfiguraci PHP a na jednom z úvodním řádku bude něco takového:
Configuration File (php.ini) Path => /etc/php/7.3/cli
což znamená že budeme upravovat soubor /etc/php/7.3/cli/php.ini. Pro jeho úpravu musíme mít administrátorské oprávnění. Přihlásíme se tedy v terminálu jako root (příkazem "su -") a použijeme např. editor nano
# nano /etc/php/7.3/cli/php.ini
Nejlépe na konec souboru přidáme následující:
[XDebug] xdebug.remote_enable = 1 xdebug.remote_autostart = 1
Po restartu webového serveru by mělo být vše připraveno k ladění PHP skriptů. Pro vyzkoušení si opět vytvoříme novou složku, v ní podsložku .vscode se souborem launch.json který bude mít následující obsah:
{ "version": "0.2.0", "configurations": [ { "type": "php", "name": "debug PHP script", "request": "launch", "program": "${file}", "runtimeExecutable": "php" } ] }
Nyní si vytvoříme jednoduchý skript a ukázku podmíněného breakpointu. Vytvoříme soubor test.php:
<?php echo 'test php debug' . PHP_EOL; $cislo = 62; for ($i = 0; $i < 20; $i++) { $cislo = $cislo + $i; } echo $cislo . PHP_EOL;
Nastavíme kurzor na řádek uvnitř cyklu for (tj .$cislo = $cislo + $i;) a z hlavní nabídky zvolíme "Debug - New breakpoint - Conditional breakpoint" a do podmínky pro přerušení napíšeme $cislo > 100. Nyní již spustíme skript příkazem "Debug - Start debugging (F5)". Pokud je vše správně nastaveno, běh skriptu se zastaví na breakpointu a v levém panelu na záložce "VARIABLES" se můžeme přesvědčit, že aktuální hodnota proměnné $cislo je 107.
Jak vidíme v levém panelu máme k disposici výpis proměnných s jejich aktuálními hodnotami, dále hodnoty tzv. superglobals, tj. např. $_COOKIE, $_SERVER a další. Také je zde záložka WATCH, kam si můžeme přidat vlastní výraz k vyhodnocení.
Školení
Kontakt
739 219 991
live:radekchalupa_1
Nové články