Debug di PHP con Xdebug

Xdebug è un potente strumento di debug e profilazione PHP che ci aiuta ad analizzare e ottimizzare le applicazioni PHP. Supporta funzionalità come il debug passo passo, la misurazione delle prestazioni e l'analisi dello stack, che rendono la risoluzione dei problemi molto più semplice e forniscono informazioni migliori sul codice. Di seguito è riportata una piccola guida alla configurazione da utilizzare all'interno di VSCode.


Installa Xdebug

Ad esempio, installiamo Xdebug su un sistema Ubuntu attuale:

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

Infine, creiamo una directory temporanea per la successiva archiviazione dei dati di profilazione e tracciamento:

mkdir -p /tmp/xdebug

Configura Xdebug

Dopo l'installazione, configuriamo Xdebug. Per fare ciò, lo modifichiamo it/php.ini:

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

Quella che segue è una configurazione di base sensata:

[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

Dopo aver apportato queste modifiche, riavviamo PHP-FPM per applicare le modifiche:

sudo service php8.4-fpm restart

Configura VSCode

Per utilizzare Xdebug in Visual Studio Code, sono necessarie due estensioni e una modifica della configurazione. Installiamo questo:

Creiamo infine il file di configurazione launch.json nella cartella .vscode del progetto da analizzare:

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

Installa l'estensione Chrome

L'estensione helper Xdebug si è dimostrata efficace per il debug flessibile nel browser. Ciò rende possibile abilitare o disabilitare Xdebug solo quando necessario. Puoi anche modificare facilmente la modalità di debug (ad esempio, per passare dal debug alla profilazione):

Configura WordPress

Quando si utilizza Xdebug in un ambiente WordPress, potrebbe essere utile disabilitare il debug all'interno dei processi cron quando è attiva una sessione di debug. Ciò semplifica le richieste di debug. Per fare ciò, aggiungi la seguente riga a: wp-config.php UN:

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

Con questa configurazione abbiamo un setup potente che ci permette di affrontare con precisione problemi complessi di debug. Che si tratti di trovare bug ostinati o di ottimizzare i problemi di prestazioni, Xdebug non solo rende il lavoro più efficiente, ma apporta anche una nuova qualità allo sviluppo attraverso il controllo e la chiarezza del codice.

Indietro