Vai al contenuto

Xdebug 3 e PhpStorm con Laravel: connessione, breakpoint e percorsi

Con Xdebug 3, è il processo PHP a collegarsi all’IDE. Se un breakpoint Laravel non viene raggiunto, controlla prima quale runtime esegue la richiesta, se Xdebug è attivo lì e se può raggiungere PhpStorm.

Configurazione per PHP e IDE sulla stessa macchina

Dopo aver installato e caricato l’estensione compatibile, una configurazione di sviluppo può contenere:

xdebug.mode=debug
xdebug.start_with_request=trigger
xdebug.client_host=127.0.0.1
xdebug.client_port=9003

Questo esempio presuppone che PHP e PhpStorm condividano lo stesso contesto di rete. Dentro un container, 127.0.0.1 indica il container stesso: il client_host deve invece raggiungere la macchina dell’IDE.

La guida Xdebug allo step debugging descrive trigger e collegamento. Riavvia il processo pertinente quando cambi la sua configurazione.

Mettere PhpStorm in ascolto

Configura la porta del debugger e abilita l’ascolto delle connessioni PHP. Se i percorsi del server differiscono da quelli del progetto locale, imposta il mapping dei file secondo la documentazione PhpStorm.

Posiziona un breakpoint in un percorso semplice, attiva il trigger e richiama quella rotta. Per un comando Artisan, verifica la configurazione CLI: può essere diversa da quella FPM usata dal sito.

Diagnosticare in ordine

Se non arriva alcuna connessione, osserva il log di Xdebug e la raggiungibilità dell’IDE dal runtime. Se la connessione arriva ma i breakpoint non corrispondono, controlla percorso e versione del file eseguito.

Non serve esporre indiscriminatamente la porta del debugger su Internet. È un collegamento di sviluppo da mantenere nel percorso di rete necessario.

Usare il debugger per verificare un’ipotesi

Ispeziona input, stack e passaggi che portano al valore inatteso. La valutazione di un’espressione può eseguire codice con effetti: evita chiamate che modificano dati quando vuoi soltanto osservarli.

Una sessione di debug altera i tempi del processo. Per misurare prestazioni usa un ambiente e strumenti appropriati, separando la ricerca dell’errore dal benchmark.