Integrare Xdebug cu Netbeans

Postat la Sat 16 January 2016 in tutoriale, php

Ca dezvoltatori de proiecte web/php de multe ori suntem nevoiti sa cautam problemele din codul scris. Cea mai uzuala metoda este adaugarea de clasicelor linii:

print_r($variable);
var_dump($variable);
die('here I am');

O metoda mai eficienta insa este utilizarea extensiei Xdebug ce permite afisarea multor informatii utile.

Instalarea se poate face prin pachete precompilate ori via PECL. Cum instalam pe Ubuntu:

# apt install php5-xdebug

Completam in fiserul /etc/php5/mods-available/xdebug.ini cu umatoarele setari principale:

1
2
3
4
5
6
7
8
9
zend_extension=xdebug.so
xdebug.remote_enable="1"
xdebug.remote_handler="dbgp"
xdebug.remote_host="localhost"
xdebug.remote_mode="req"
xdebug.remote_port="9000"
xdebug.remote_autostart="1"
xdebug.remote_log=""
xdebug.idekey="netbeans-xdebug"

Pentru alte setari puteti consulta documentatia oficiala.

Repornim serverul web

# service apache2 restart

In aplicatia Netbeans verificam sa avem urmatarele setari:

Tip: verificati ca framework-ul folosit sa permita includerea in url a caracterelor ? & =.

In cod marcam puncte de oprire unde dorim sa oprim aplicatia si sa facem analiza:

Pornim din bara de unelte aplicatia in mod debug, astfel aplicatia se deschide intr-un nou tab cu link de forma http://aplicatie/index.php?XDEBUG_SESSION_START=netbeans-xdebug.

Tip: recomand instalarea extensiei NetBeans Connector in Chrome.

Navigam spre pagina dorita si aplicatia se opreste iar in Netbeans apare o fereastra in care putem vizualiza variabilele folosite in acel punct:

Continuarea rularii aplicatiei, spre urmatorul punct de oprire - daca e cazul - se face din bara de unelte

La final oprim aplicatia din modul debug:

De asemenea Xdebug permite analiza functionarii aplicatiilor din punct de vedere al performantei cu profiler-ul integrat.