@@ -14,20 +14,12 @@ the status code that should be set for the given exception.
14
14
Error pages can be customized in two different ways, depending on how much
15
15
control you need:
16
16
17
- 1. Customize the error templates of the different error pages (explained below) ;
17
+ 1. Customize the error templates of the different error pages;
18
18
19
- 2. Replace the default exception controller ``twig.controller.exception:showAction ``
20
- with your own controller and handle it however you want (see
21
- :ref: `exception_controller in the Twig reference <config-twig-exception-controller >`).
22
- The default exception controller is registered as a service - the actual
23
- class is ``Symfony\Bundle\TwigBundle\Controller\ExceptionController ``.
19
+ 2. Replace the default exception controller ``twig.controller.exception:showAction ``.
24
20
25
- .. tip ::
26
-
27
- The customization of exception handling is actually much more powerful
28
- than what's written here. An internal event, ``kernel.exception ``, is thrown
29
- which allows complete control over exception handling. For more
30
- information, see :ref: `kernel-kernel.exception `.
21
+ The default ExceptionController
22
+ -------------------------------
31
23
32
24
The default ``ExceptionController `` will either display an
33
25
*exception * or *error * page, depending on the setting of the ``kernel.debug ``
@@ -43,9 +35,12 @@ shown to the end-user.
43
35
44
36
The third-party `WebfactoryExceptionsBundle `_ provides a special
45
37
test controller that allows you to display your custom error
46
- pages for arbitrary HTTP status codes even with
38
+ pages for arbitrary HTTP status codes even with
47
39
``kernel.debug `` set to ``true ``.
48
40
41
+ Override Error Templates
42
+ ------------------------
43
+
49
44
All of the error templates live inside the TwigBundle. To override the
50
45
templates, simply rely on the standard method for overriding templates that
51
46
live inside a bundle. For more information, see
@@ -129,3 +124,32 @@ Symfony uses the following algorithm to determine which template to use:
129
124
``exception.json.twig `` for the JSON exception page.
130
125
131
126
.. _`WebfactoryExceptionsBundle` : https://github.com/webfactory/exceptions-bundle
127
+
128
+ Replace the default Exception Controller
129
+ ----------------------------------------
130
+
131
+ If you need a little more flexibility beyond just overriding the template
132
+ (e.g. you need to pass some additional variables into your template),
133
+ then you can override the controller that renders the error page.
134
+
135
+ The default exception controller is registered as a service - the actual
136
+ class is ``Symfony\Bundle\TwigBundle\Controller\ExceptionController ``.
137
+
138
+ To do this, create a new controller class and make it extend Symfony's default
139
+ ``Symfony\Bundle\TwigBundle\Controller\ExceptionController `` class.
140
+
141
+ There are several methods you can override to customize different parts of how
142
+ the error page is rendered. You could, for example, override the entire
143
+ ``showAction `` or just the ``findTemplate `` method, which locates which
144
+ template should be rendered.
145
+
146
+ To make Symfony use your exception controller instead of the default, set the
147
+ :ref: `twig.exception_controller <config-twig-exception-controller >` option
148
+ in app/config/config.yml.
149
+
150
+ .. tip ::
151
+
152
+ The customization of exception handling is actually much more powerful
153
+ than what's written here. An internal event, ``kernel.exception ``, is thrown
154
+ which allows complete control over exception handling. For more
155
+ information, see :ref: `kernel-kernel.exception `.
0 commit comments