Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
395 views
in Technique[技术] by (71.8m points)

twig - 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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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 SymfonyComponentHttpKernelExceptionAccessDeniedHttpException();
or
throw new SymfonyComponentHttpKernelExceptionHttpException(403); //to test 403 error page


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...