Cuando desarrollamos algún software, a veces tenemos que estar seguros de que está sucediendo durante el tiempo de ejecución. Si usamos php como lenguaje de programación, nos tiene acostumbrados a usar var_dump y echo para depurar código simple de una manera muy rudimentaria. Pero cuando nuestro código se vuelve más complejo, necesitamos herramientas más poderosas que nos ayuden a ver la MATRIZ (sentido figurado) qué está sucediendo.
Para llevar a cabo esta tarea, acude al rescate xDebug en la versión 3, que podemos enlazar a Visual Studio Code y tenemos la fusión perfecta que nos ayudará a depurar nuestro código con mayor facilidad. A continuación, le daremos una guía de cómo hacerlo.
Antes de realizar estos pasos, debe tener php instalado en su Mac y conocer la ubicación de la versión de php que está utilizando. Para esto puedes usar el comando: php --ini
Para ello acceda a la ubicación del archivo php.ini usando el editor del terminal nano, busque la línea zend_extension = xdebug.so y elimínela o coméntela.
Para ello se utilizará el comando pecl install (PECL es un repositorio de extensiones PHP, de hecho PECL significa PHP Extension Community Library, es decir, es un lugar donde se encuentran las extensiones PHP más comunes y que son las más utilizadas por la comunidad ). Escribimos en la terminal: pecl install xdebug y esperamos a que termine la instalación.
Creamos un archivo llamando a ext-xdebug.ini en la carpeta conf.d de la ubicación php que se está utilizando (obtenga la ruta php del comando php --ini); para ello ejecutamos el comando nano /usr/local/etc/php/7.4/conf.d/ext-xdebug.ini. Este comando abre un archivo en blanco donde copiamos las siguientes líneas:
zend_extension="/usr/local/Cellar/php@7.4/7.4.13_1/pecl/20190902/xdebug.so"
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.client_port = 9000
xdebug.client_host = "127.0.0.1"
xdebug.log = "/Users/[user_current]/xdebug.log"
xdebug.idekey = VSCODE
Nota: La primera línea que hace referencia a zend_extension debe obtenerse de la instalación de xdebug que se realizó anteriormente. Aquí hay un ejemplo, pero generalmente varía según la versión del archivo php. Y la línea xdebug.log debe poner una dirección donde se espera que se almacene el archivo de registro xdebug.
Si php se instaló con Homebrew (administrador de paquetes de MacOS) enumeramos los servicios que se están ejecutando, para esto ejecutamos el comando brew services list. Una vez ejecutado esto se comprueba si el servicio php está activo y ejecutamos el comando brew services restart php@7.4 (la versión del php cambia según la instalada en tu pc). Si esta usando valet debe reiniciarlo usando el comando valet restart.
Ejecutar en el servidor echo phpinfo(); para revisar la información del php y buscar la sección que hace referencia al xdebug. Los valores que configuró anteriormente en el archivo ext-xdebug.ini deberían aparecer.
Abra el VS Code y vaya a extensiones. En el buscador escriba PHP Debug (extensión desarrollada por Felix Becker) e instálela. Acceda a la sección Run and Debug y presione la acción Run (triángulo verde en border superior) para crear un listen para el xDebug. Esto le desplegará un menú para que escoja el lenguaje de programación con el cual quiere depurar, que en este caso es php y selecciónelo. Se le abrirá un archivo json con la configuración del VS Code para el xDebug. Puede modificar los datos de la configuración teniendo en cuenta los que especificó en el archivo ext-xdebug.ini.
Acceda nuevamente a la sección Run and Debug y presione la acción Run (triángulo verde en border superior). En su código establezca punto de ruptura y ejecute la petición al servidor. El código se detendrá y punto de ruptura y podrá controlar la ejecución con la barra de depuración que aparece en la parte superior.
Happy coding!!!