Dawid Bautsch Dev Blog

No category

Krokowe wykonywanie programu w PHP

dbautsch

Odwieczne pytania na które nikt nie znał odpowiedzi: w jaki sposób wykonywać krokowo program napisany w PHP? Czy raz uruchomiony interpreter można wstrzymać? Czy można podglądać stan zmiennych oraz stos wywołań w trakcie działania skryptu?

Ostatnio dowiedziałem się, że można. Co więcej, taka możliwość istnieje już od około 2003 roku. Rozwiązaniem jest rozszerzenie PHP o nazwie XDebug. Początkowo plugin mógł współpracować wyłącznie z frameworkiem Zend. Od jakiegoś czasu działa również m.in. z CodeIgniter’em.

Aby móc skorzystać z tego dobrodziejstwa, należy edytować plik php.ini i wstawić linie (na samym dole pliku):

[XDebug]
zend_extension = "c:\xampp\php\ext\php_xdebug.dll"
xdebug.default_enable = 1
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "c:\xampp\tmp"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_log="c:\xampp\tmp\xdebug.txt"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "c:\xampp\tmp"
xdebug.remote_cookie_expire_time = 36000

W przypadku dystrybucji XAMPP, plik php_xdebug.dll powinien już znajdować się w folderze php/ext. Jeśli używacie innych paczek, xdebug należy ściągnąć ze strony www. Należy pamiętać o wybraniu odpowiedniej wersji (https://xdebug.org/download.php).
Do debugowania aplikacji WWW najlepiej użyć jakiegoś IDE. W tym przypadku bezproblemowy okazał się NetBeans z rozszerzeniami PHP.

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Back to top