Skip to content

Instantly share code, notes, and snippets.

@bezhermoso
Created January 24, 2014 10:08
Show Gist options
  • Save bezhermoso/87716a9c72a1d12c5036 to your computer and use it in GitHub Desktop.
Save bezhermoso/87716a9c72a1d12c5036 to your computer and use it in GitHub Desktop.
<?php
namespace Acme\DemoBundle\EventListener;
use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
class ExceptionListener
{
protected $engine;
public function __construct(EngineInterface $engine)
{
$this->engine = $engine;
}
public function onKernelException(GetResponseForExceptionEvent $event)
{
$controller = $event->getRequest()->get('_controller');
$templateName = '';
/**
* Your own logic here to define which template to display according to which bundle $controller belongs.
*/
$event->setResponse($this->engine->renderResponse($templateName, array(
'exception' => $event->getException(),
)));
}
}
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="acme.exception.listener" class="Acme\DemoBundle\EventListener\ExceptionListener">
<tag name="kernel.event_listener" event="kernel.exception" method="onKernelException" />
</service>
</services>
</container>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment