Symfony 5: La Vía Rápida | Paso 12 – Escuchando eventos (events and subscribers)

En le capítulo anterior vimos como almacenar nuestras sesiones en Redis y en este nos dedicaremos a conocer cómo funcionan los eventos en Symfony y cómo podemos utilizar este concepto para extender funcionalidades.

El concepto de eventos no es nada nuevo. Quizás el primer acercamiento de todo desarrollador web a los eventos, es generalmente usando javascript. Es muy normal hablar de los eventos onclick, onfocus, onblur. Estos eventos se disparan en ciertos momentos y por medio de un listener, o escuchador para traducirlo de alguna forma, detectamos que ese evento en particular fue disparado y podemos codificar las acciones que deban ejecutarse.

Symfony tiene su propio modelo de eventos que nos permite, no solo escuchar y ejecutar acciones por eventos disparador por el mismo framework, sino también eventos disparados por bundles de terceros o incluso disparar nuestros propios eventos.

Existen varios casos de uso de los eventos de symfony, desde creación de menús de usuarios de forma dinámica dependiendo de los permisos del usuario, o ejecutar acciones antes de insertar un registro o después de ejecutar un insert, update o delete en nuestras tablas para creación de las auditorías de forma dinámica. En la descripción te dejo algunos enlaces de interés para entrar en estos conceptos.

En especial me gusta usar este concepto para crear mis propios bundles y así poder extender sus funcionalidades de acuerdo al proyecto en donde instalo el bundle.

En el siguiente video vamos a entrar en detalles sobre doctrine, nuestro componente para trabajar con la base de datos. Vamos a hablar sobre su ciclo de vida y veremos cómo crear rápidamente y de forma automática algunos valores para las conferencias.

[sc name=»posts_symfony5_la_via_rapida» ]

Descubre más desde Neurosimbiosis

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Deja un comentario

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