Nuevo en Symfony 3.4: Subscripción a eventos desde el micro kernel
En Symfony 2.8, introdujimos el trait MicroKernel para configurar el framework Symfony de una manera más sencilla. Symfony 4, que se publica en noviembre de 2017, usará este micro kernel por defecto en todas las aplicaciones.
Mientras tanto, en Symfony 3.4 hemos mejorado el micro kernel para que
puedas suscribirte a eventos desde el propio kernel. Para ello, solamente
tienes que implementar la conocida interfaz EventSubscriberInterface
y añadir
los métodos que se encargan de procesar los eventos.
Considera por ejemplo una aplicación que quiere gestionar las posibles excepciones
que se produzcan durante su ejecución. En Symfony 3.4, puedes hacer que el kernel
escuche el evento KernelEvents::EXCEPTION
e implemente la lógica que procesa
esas excepciones:
// src/Kernel.php namespace App; use App\Exception\DangerException; use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; use Symfony\Component\HttpKernel\Kernel as BaseKernel; use Symfony\Component\HttpKernel\KernelEvents; // añade aquí el "implements" para poder suscribirte a eventos class Kernel extends BaseKernel implements EventSubscriberInterface { use MicroKernelTrait; // ... public static function getSubscribedEvents() { return [KernelEvents::EXCEPTION => 'handleExceptions']; } public function handleExceptions(GetResponseForExceptionEvent $event) { if ($event->getException() instanceof DangerException) { $event->setResponse(Response::create('It\'s dangerous to go alone. Take this ⚔')); } // ... } }
Esta funcionalidad fue contribuida por Maxime Steinhausser en el pull request #23812.
Fuente: New in Symfony 3.4: Subscribing to events in the micro kernel
Comentarios
Proyectos Symfony destacados
La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.