Symfony 5: Comandos de consola útiles

Symfony es un framework muy completo diseñado para optimizar el desarrollo de las aplicaciones web. Hace unas semanas conocíamos en nuestro Blog Symfony 5. ¿Qué hay de nuevo en el Framework?. Si aún no conoces, o no has leído el artículo, creo que ahora mismo es buen momento. Hoy repasaremos sus múltiples comandos que te ayudarán a desplegar tu proyecto de forma ágil y segura.

Otros artículos PHP Symfony 5 recomendados antes de seguir con la lectura:

Symfony Cloud y creación de un proyecto Symfony 5

Para facilitar la creación de un nuevo proyecto Symfony 5 o gestionar las tareas diarias en el desarrollo, deberás descargar el ejecutable en tu máquina el binario de Symfony. En el siguiente enlace encontrarás la descarga según tu sistema operativo para instalar Symfony 5.

Este binario de Symfony 5 también tiene una serie de recursos para implementar el servicio Symfony Cloud, un servicio Cloud que presenta una serie de recursos para alojar tus desarrollos Symfony 5 en el Cloud. Con todo el soporte de los creadores de Symfony.

Antes de crear tu primera aplicación Symfony deberías verificar si tu sistema operativo cumple con todos los requisitos necesarios para funcionar adecuadamente, especialmente PHP:

Una vez cumplas con los requisitos, puedes crear tu aplicación Web completa de Symfony ejecutando:

O también puedes crear tu aplicación Symfony con los recursos mínimos para crear proyectos como microservicios, aplicaciones de consola o APIs:

La única diferencia entre estos dos comandos es la cantidad de paquetes instalados por defecto. La opción (--full) instala todos los paquetes que generalmente son necesarios para crear aplicaciones web.

Ejecutando Symfony 5

Aunque en un entorno de producción, debes usar un servidor web como Nginx o Apache, para el desarrollo, es más fácil usar el servidor web local proporcionado por Symfony. Este servidor local te proporcionará todo lo que necesitas.

Configurar un proyecto Symfony 5 existente

Si dispones de algún proyecto desarrollado en Symfony 5, solo necesitas obtener el código fuente del proyecto e instalar las dependencias con Composer. Suponiendo que tu equipo utiliza un Workflow de desarrollo en Git, configura tu proyecto con los siguientes comandos:

Probablemente tengas que personalizar el archivo .env y por ejemplo, crear una base de datos. Cuando trabajas en una aplicación Symfony existente por primera vez, puede ser útil ejecutar este comando que te mostrará información sobre la configuración del proyecto Symfony 5:

Symfony Flex y la instalación de Bundles en Symfony 5

Seguramente necesites añadir alguna librería (bundle) a tu proyecto, que te ayudará a añadir funcionalidades a tu Symfony 5. Generalmente la instalación de estos bundles se realiza mediante composer, aunque generalmente requieren alguna configuración antes de usarlos (editar archivos para habilitar el paquete, crear algún archivo para agregar alguna configuración inicial, etc.)

Para automatizar esta tarea, Symfony 5 incluye Symfony Flex, una herramienta para simplificar la instalación y gestión de bundles en las aplicaciones de Symfony 5. Técnicamente hablando, Symfony Flex es un complemento a Composer que se instala por defecto y que automatiza las tareas más comunes de los Bundles de Symfony 5. Symfony Flex se ejecuta cada vez que realizas un comando composer. Ejemplo:

Al instalar logger, Symfony Flex también instalará todas las dependencias necesarias para que pueda instalarse logger.

Comprobando Vulnerabilidades de Seguridad en Symfony 5

El comando de symfony que hemos instalado proporciona una opción para verificar si los bundles de tu proyecto contienen alguna vulnerabilidad de seguridad conocida hasta la fecha:

Te recomiendo ejecutar este comando a menudo en tu aplicación Symfony 5, para poder actualizar o reemplazar los bundles vulnerables lo antes posible. La comprobación de seguridad se realiza localmente clonando la base de datos de avisos de seguridad de PHP.

Comandos de consola útiles en Symfony 5

Cuando creamos una aplicación Symfony 5, podemos ejecutar automáticamente una serie de comandos desde el ejecutable bin/console. Estos comandos son muy útiles en el desarrollo de tu proyecto.

Para ver la lista de comandos disponibles, ejecuta lo siguiente en la consola (sin ningún argumento):

Veamos algunos de los ejecutables de bin/console que pueden ser indispensables en tu proyecto.

Comandos Doctrine en Symfony 5

Entre la larga lista de comandos disponibles, muchos de ellos comienzan con el prefijo doctrine:. Veamos algunos de los más destacados:

Crear y verificar una conexión a una base datos según tu configuración en el archivo .env.

Comprueba si el entorno actual está configurado de manera eficiente para su uso en producción. Ejecútalo siempre en el entorno prod:

Crear las entidades de Doctrine (configuración de la base de datos en tu proyecto Symfony 5) a partir de una base de datos existente. El siguiente comando indica a Doctrine que examine la base de datos existente y pueda crear la información de mapeo correspondiente a cada tabla y variable.

También puedes revisar si tu proyecto está alineado a la base de datos antes de hacer la importación:

Si por el contrario, necesitas crear las tablas en la base de datos desde la configuración de las entidades en tu proyecto Symfony 5, puedes ejecutar:

Ejecutar query’s DQL o SQL directamente desde la consola de comandos.

La diferencia entre SQL o DQL es que el SQL se realiza directamente en formato SQL y el DQL tal como realizarás en tu proyecto Symfony 5, está basado en Doctrine.

Depuración de rutas en Symfony 5

La configuración de rutas define qué acción ejecutar para cada URL en tu proyecto Symfony 5. Aunque también proporciona otras funciones útiles, como generar URLs amigables para mejorar el SEO.

Un comando muy útil para conocer todas las rutas generadas en tu proyecto Symfony 5:

Y si necesitas más información sobre alguna ruta, puedes añadir al comando anterior el nombre de una ruta para ver sus detalles:

Otro comando muy útil en la depuración es router:match, con él podrás averiguar qué ruta estamos llamando pasándole una URL:

Limpiar la caché en Symfony 5

Desde Symfony 5 puedes gestionar varios pools de cache a la vez, como por ejemplo el de sistema, doctrine e incluso podría configurarse un servicio de caché como Redis. Para limpiar toda esta caché puedes utilizar el siguiente comando:

O si necesitas limpiar un pool de caché especifico solo deberás cambiar cache.global_clearer por el nombre del sistema que necesitas limpiar. Puedes ver el listado de pools de caché configurados en tu desarrollo Symfony 5 con:

Creación de entidades, controladores y más con Symfony 5

Symfony 5 dispone de un comando con el que te facilitará poder crear entidades, controladores, comandos, validadores, formularios, usuarios, etc... Con el siguiente comando podrás ver una lista de todo lo que podemos hacer con este bundle:

Veamos algunas de sus funcionalidades más interesantes.

Crear una nueva entidad (Entity) con un asistente que te guiará para una creación completa:

También podrás regenerar los getters y setters de una Entity:

Otra función interesante es que se puede generar los Controller de la misma forma:

Y una función indispensable es que puedes generar la Entidad y configuración de los usuarios en tu proyecto Symfony 5:

Conclusión

Hoy solo hemos repasado algunos de los comandos de consola de Symfony 5 más relevantes. Estos comandos de consola son una herramienta indispensable en el entorno de desarrollo, con un potente servidor web para facilitar el desarrollo en local, utilidades que te ayudarán en el desarrollo de tu proyecto, te facilitará cumplir con todas las buenas prácticas de este framework, así como comandos específicos para trabajar con Symfony Cloud.

¿Utilizas los comandos de Symfony en tus desarrollos? ¿Cuál es tu favorito?

Photo by Larisa Birta on Unsplash

Referencias:
· Symfony 5 Documentation