Introduction
From Symfony 4.0 it’s possible to
subscribe to events using the EventSubscriberInterface
Interface
Syntax
// 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;
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 ⚔'));
}
// ...
}
}