CONFIGURAZIONE DEBUG PHP con VS CODE e APACHE

Avatar Antonio Tortona

Indice

Introduzione

Capita sovente durante la scrittura di codice sorgente di realizzare snippet che ottenuti specifici dati di input producano un risultato differente da quello atteso, pur non segnalando errori durante la fase di esecuzione/compilazione. Questo è tanto più vero nel contesto web ove le criticità sono sempre dietro l’angolo. In particolare, quando ci troviamo in una situazione come quella descritta abbiamo a che fare con errori semantici del codice, cioè di significato. Tali errori di programmazione prendono il nome in gergo di bug. In altri termini si verifica una manipolazione errata delle variabili in gioco durante l’elaborazione che è determinata da un’errata progettazione o implementazione dell’algoritmo risolutivo. In taluni casi è utile poter visualizzare il valore assunto dalle variabili coinvolte nell’esecuzione, osservando come questo varia istruzione dopo istruzione. L’operazione che consente di fare ciò è detta debug e ingloba un concetto fondamentale: i breakpoint. Con tale termine ci si riferisce all’istruzione raggiunta la quale, il controllo del flusso del programma, cioè la sua esecuzione, passa al programmatore: da quel momento in poi, infatti, saremo noi a utilizzare delle apposite frecce, messe a disposizione dal debugger, per eseguire le istruzioni successive, potendo valutare cosa accade ai dati in gioco. È doveroso sottolineare come queste funzionalità siano integrate negli IDE (Integrated Development Environment), ambienti di sviluppo che inglobano una serie di strumenti utili per realizzare software, quali editor di testo, compilatore e debugger. Essendo però VS Code un semplice editor di testo sarà necessario installare un’apposita estensione contenente il debugger PHP.

Configurazione

La prima operazione da compiere è recarsi nella sezione estensioni di Visual Studio Code e installare la seguente: PHP Debug di Xdebug.

Supponendo di utilizzare la toolchain XAMPP, si accede alla radice del web server, avente tale percorso, C:\xampp\htdocs, in ambiente Windows. Con il termine radice del web server si indica la cartella messa a disposizione dal Web Server, nel nostro caso Apache, nella quale inserire l’albero di directory e file componenti la web application sviluppata. Tutte le risorse presenti al suo interno sono raggiungibili tramite URL. Giunti in questa cartella creare un file rinominandolo a piacere, es. test.php, inserendo il seguente snippet:

<?php
	phpinfo();
?>

Successivamente avviare Apache sfruttando l’apposito button nel Control Panel di XAMPP e se tutto è andato a buon fine digitare nel browser il seguente URL: localhost/test.php, dove test.php è il file creato precedentemente. La pagina visualizzata sarà simile all’immagine di seguito riportata:

Come è facilmente osservabile, attraverso questa pagina web possiamo reperire una serie di informazioni utili in relazione all’installazione dell’interprete PHP incluso in XAMPP e il relativo motore Zend. Il nostro obiettivo è ottenere la libreria dll dell’estensione Xdebug per la specifica versione dell’interprete PHP integrato in Apache. Quest’ultima informazione la reperiamo dalla pagina web visualizzata in precedenza eseguendo un CTRL+A e CTRL+C, copiando così tutto il testo necessario da incollare nel sito ufficiale dell’estensione. Cliccando il link https://xdebug.org/wizard si aprirà una pagina dotata di text box, nella sezione “Installation Wizard”, in cui incollare il testo. A tal punto pigiare su “Analyse my phpinfo() output”: comparirà un resoconto della ricerca effettuata, del quale ci interessa il seguente paragrafo:

Questo trafiletto contiene le istruzioni per scaricare e collocare correttamente la libreria dll, precedentemente menzionata, all’interno della directory ext dell’installazione dell’interprete PHP. Di tale procedura occorre solo ed esclusivamente seguire il passo 1 e 2. Al termine di queste operazioni ci si deve recare nel Control Panel di XAMPP, cliccare sul button config di Apache e selezionare la voce “PHP (php.ini)” che produrrà l’apertura di tale file di configurazione nell’editor testuale predefinito della macchina. Nel caso in cui questa procedura non andasse a buon fine è possibile reperire il file php.ini riferendosi al percorso C:/xampp/php/php.ini. Aggiungere alla fine del file le seguenti righe di codice:

[xdebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.mode = debug
xdebug.start_with_request = yes 

Eseguito ciò si procede con la configurazione di VS Code selezionando dal menù la voce File > Preferences > Settings.

Nella schermata che appare ricercare, sfruttando la search bar, “php.validate”: spuntare la casella che compare come primo elemento “Enable/disable built-in PHP validation” e cliccare su “Edit in settings.json”. Nel file che si aprirà valorizzare i seguenti attributi in tal modo, assicurandosi di non duplicare le stringhe riportate:

"php.validate.executablePath": "C:\\xampp\\php\\php.exe",
"php.debug.executablePath": "C:\\xampp\\php\\php.exe"

Salvato il tutto si può procedere ad un riavvio di Apache al fine di testare il coretto funzionamento del Debug PHP da VS Code attraverso un semplice esempio:

Impostare un breakpoint alla riga 2; successivamente nell’activity bar posta a sinistra su VS Code recarsi nella sezione “Run e Debug” nella quale selezionare accanto alla freccia verde l’opzione “Listen for Xdebug”.

Ora lanciare il debug con la medesima freccia e navigare con il browser all’indirizzo localhost/test.php: ritornando nell’editor si osserva come il controllo del programma è passato al programmatore che può far eseguire le istruzioni utilizzando le frecce sopra presenti. È altresì possibile mettere in pausa il debug, riavviarlo o valutare il contenuto di ciascuna variabile nella sezione “VARIABLES”.

Avatar Antonio Tortona

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Altri Articoli e Post