Cómo debuggear un comando Symfony usando PhpStorm

Inicio / Cómo hacer para... / Cómo debuggear un comando Symfony usando PhpStorm

En este post voy a mostrarte un caso algo particular de cómo debuggear un script que corre por línea de comandos.

Se trata de debuggear un script hecho con el framework Symfony.

La particularidad que tiene este escenario es que el código que escibiste (y que querés verificar), no es un archivo php común, si no que es una claseque extiende de ContainerAwareCommand, con lo cual, no es posible invocarla en forma directa.

La ejecución de este comando requiere del paso por el script bin/console. Ahora, si te fijás su contenido notarás que no es más que un script php, con lo cual, podría ser debuggeado usando la configuración “estándar” de PhpStorm para estos casos…

La idea en definitiva es simple, cuando ejecutás algo como:

php bin/console miApp:miComando

El script php que estás ejecutando es bin/console y “miApp:miComando” no es otra cosa que un argumento de CLI.

Entonces precisamente, de esa forma es como tenés que configurar el IDE para que pueda ejecutar tu comando (Y puedas ponerle breakpoints, evaluar variables, etc…):

En este ejemplo, el comando que yo uso (EnviarRecordatorios) recibe parámetros a su vez. Ningún problema, son más argumentos que se le pasan a bin/console.

¿De qué otra forma podrías debuggear comandos symfony?

mchojrin

Director Académico y Docente at Leeway Academy
Hola! Soy Mauro Chojrin, estudié la Lic. en Ciencias de la Computación en la UBA.

Me desempeño como docente de programación desde el año 1997.

Pasé por diferentes instituciones (Escuela Técnica ORT, Digital House, EducacionIT, ITMaster, Escuela DaVinci entre otros).

Actualmente coordino el desarrollo de proyectos web en https://leewayweb.com y los cursos dictados en Leeway Academy

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.