Depanare în PHP cu Xdebug

Xdebug este un instrument puternic de depanare și profilare PHP care ne ajută să analizăm și să optimizăm aplicațiile PHP. Acesta acceptă funcții precum depanarea pas cu pas, măsurarea performanței și urmărirea stivei, ceea ce face depanarea mult mai ușoară și oferă informații mai bune asupra codului. Mai jos este un mic ghid de configurare pentru utilizare în VSCode.


Instalați Xdebug

De exemplu, instalăm Xdebug pe un sistem Ubuntu actual:

sudo apt-get install -y php8.4-xdebug

În cele din urmă, creăm un director temporar pentru stocarea ulterioară a datelor de profilare și urmărire:

mkdir -p /tmp/xdebug

Configurați Xdebug

După instalare, configuram Xdebug. Pentru a face acest lucru, îl edităm ro/php.ini:

vi /etc/php/8.4/fpm/conf.d/custom.ini

Ceea ce urmează este o configurație de bază sensibilă:

[xdebug]
; mode (see: https://xdebug.org/docs/all_settings#mode)
;   reasonable default
xdebug.mode=debug,profile
;   disabled
;xdebug.mode=off
;   step debugging
;xdebug.mode=debug
;   performance profiling (be aware of load/space)
;xdebug.mode=profile
;   trace profiling (record args)
;xdebug.mode=trace

; starting mode
;   always (not recommended)
;xdebug.start_with_request=yes
;   only when specific get parameters / cookies are set
;   (?XDEBUG_TRIGGER=1, ?XDEBUG_PROFILE=1, ?XDEBUG_TRACE=1, ?XDEBUG_SESSION=1)
;   this is best in conjunction with Chrome extension "Xdebug helper"
xdebug.start_with_request=trigger
;   folder for analyzing profile dumps
xdebug.output_dir="/tmp/xdebug"
;   not needed, since it is already in /etc/php/8.4/fpm/conf.d/20-xdebug.ini
;zend_extension=xdebug.so

După efectuarea acestor ajustări, repornim PHP-FPM pentru a aplica modificările:

sudo service php8.4-fpm restart

Configurați VSCode

Pentru a utiliza Xdebug în Visual Studio Code, sunt necesare două extensii și o ajustare de configurare. Instalăm asta:

În cele din urmă, creăm fișierul de configurare launch.json în folderul .vscode al proiectului de analizat:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "ignore": ["**/vendor/**/*.php"]
        }
    ]
}

Instalați extensia Chrome

Extensia de ajutor Xdebug s-a dovedit pentru depanarea flexibilă în browser. Acest lucru face posibilă activarea sau dezactivarea Xdebug numai atunci când este necesar. De asemenea, puteți schimba cu ușurință modul de depanare (de exemplu, pentru a trece de la depanare la profilare):

Configurați WordPress

Când utilizați Xdebug într-un mediu WordPress, poate fi util să dezactivați depanarea în cadrul joburilor cron atunci când o sesiune de depanare este activă. Acest lucru face cererile de depanare mai ușoare. Pentru a face acest lucru, adăugați următoarea linie la: wp-config.php o:

// disable wp cron on xdebug sessions
if (function_exists('xdebug_is_debugger_active') && xdebug_is_debugger_active()) {
    define('DISABLE_WP_CRON', true);
}

Cu această configurație avem o configurație puternică care ne permite să abordăm cu precizie problemele complexe de depanare. Indiferent dacă găsiți erori persistente sau probleme de performanță de reglare fină - Xdebug nu numai că face munca mai eficientă, dar aduce și o nouă calitate dezvoltării prin control și claritate asupra codului.

Înapoi