gremo
gremo

Reputation: 48899

Which templates should be overridden in Symfony 2 error customization?

From the documentation:

All of the error templates live inside TwigBundle. To override the templates, we simply rely on the standard method for overriding templates that live inside a bundle.

And:

To see the full list of default error templates, see the Resources/views/Exception directory of the TwigBundle.

Looking at the after-mentioned directory i can find several files. I'm interested in custom templates for 403, 404 and 500 errors, so i created error.html.twig (parent template) and error403.html.twig, error404.html.twig and error500.html.twig that extends from 'TwigBundle:Exception:error.html.twig' (overridden by my custom parent template).

Is this correct? What happens if another kind of error or exception is thrown?

Upvotes: 1

Views: 2788

Answers (1)

mrok
mrok

Reputation: 2710

Yes it is correct.

All other kind of exceptions will be caught by Kernel and error500.html.twig page will be rendered.

To test it, you can turn off your debug for a moment, by switching second parameter passed to AppKerner constructor in app_dev.php

$kernel = new AppKernel('dev', false);

Then you can

  1. type wrong address to test 404 error page
  2. throw any exception to test 500 error page

throw new \Exception(); // test 500 error page

  1. throw

throw new \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException();
or
throw new \Symfony\Component\HttpKernel\Exception\HttpException(403); //to test 403 error page

Upvotes: 8

Related Questions