Xdebug con VSCode desde Homestead

Retomando entradas anteriores en las cuales hablamos de Homestead, ahora veremos otra utilidad que ya viene instalada en Homestead; hablo por supuesto de una herramienta llamada  Xdebug. Dicha herramienta nos permite debuguear nuestras aplicaciones php de una manera sencilla ahorrandonos tiempo y la tediosa tarea de estar debugueando con los míticos echos en cada llamado a una acción de nuestra aplicación.  Para lograr esto integraremos Xdebug con visual studio  code y lo conectaremos a nuestro Homestead. 

Para iniciar sería buena idea tener instalado PHP y agregar a las variables de entorno  la  url de nuestro ejecutable PHP en la mayoría de los casos no es necesario pero no esta de más,  en mi caso voy a omitir este paso. Otra cosa importante a mencionar es que para toda la interacción con con la VM de Homestead yo empleo la herramienta Git Bash una práctica herramienta en la cual es posible ejecutar comandos linux  gracias a que actúa como un emulador de terminal para entornos windows diseñado para la ejecución de comandos git.

Comencemos por habilitar en nuestro Homestead    el debuging con XDebug, para ello nuestra VM trae precargado el siguiente alias...


  vagrant@homestead:~$ xon

Buscamos el archivo en la siguiente ...      /etc/php/7.3/cli/conf.d/20-xdebug.ini      y le agregamos algo parecido a esto...


  zend_extension=xdebug.so
  xdebug.mode = debug
  xdebug.discover_client_host = 1
  xdebug.client_port  = 9001
  xdebug.max_nesting_level = 512
  xdebug.start_with_request=yes
  xdebug.client_host=192.168.10.10


Este archivo ya contiene la mayoría de líneas de código; solo modificamos la línea       xdebug.client_port  = 9001    en la que agregamos el número de puerto por el que se va comunicar con vscode; Las últimas dos líneas en el archivo es lo único que agregamos...     xdebug.start_with_request=yes    esta línea es posible indicarle a XDebug en que momento y como lanzar las alertas cuando algo ha salido mal en la conexión o con XDebug;        xdebug.client_host=192.168.10.10    le indicamos a XDebug la ip en este caso la ip que definimos en nuestro archivo Hosts.

Dentro de nuestro Visual Studio Code en la pestaña Run agregamos una nueva configuración con un ejemplo como el siguiente...


    {
       "name": "Homestead",
       "type": "php",
       "request": "launch",
       "pathMappings": {
           "/home/vagrant/mi_proyecto": "${workspaceRoot}"
       },
       "port":9001
    }

En este ejemplo creo que no es necesario explicar cada llave, me parecen auto descriptivas, quizá la única que lo amerita es la llave pathMappings en la cual agregamos el path con la ubicación de nuestro proyecto en la VM.

Con estos cambios reiniciamos nuestra VM y después de ello ya podremos debuggear nuestra aplicación desde Visual Studio Code.