@@ -42,18 +42,10 @@ flag. While *exception* pages give you a lot of helpful
42
42
information during development, *error * pages are meant to be
43
43
shown to the user in production.
44
44
45
- .. sidebar :: Testing Error Pages during Development
46
-
47
- You should not set ``kernel.debug `` to ``false `` in order to see your
48
- *error * pages during development. This will also stop
49
- Symfony from recompiling your twig templates, among other things.
50
-
51
- The third-party `WebfactoryExceptionsBundle `_ provides a special
52
- test controller that allows you to display your custom error
53
- pages for arbitrary HTTP status codes even with
54
- ``kernel.debug `` set to ``true ``.
45
+ .. tip ::
55
46
56
- .. _`WebfactoryExceptionsBundle` : https://github.com/webfactory/exceptions-bundle
47
+ You can also :ref: `preview your error pages <testing-error-pages >`
48
+ in ``kernel.debug `` mode.
57
49
58
50
.. _cookbook-error-pages-by-status-code :
59
51
@@ -153,6 +145,53 @@ Refer to the previous section for the order in which the
153
145
``exception.html.twig `` for the standard HTML exception page or
154
146
``exception.json.twig `` for the JSON exception page.
155
147
148
+ .. _testing-error-pages :
149
+
150
+ Testing Error Pages during Development
151
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
152
+
153
+ The default ``ExceptionController `` also allows you to preview your
154
+ *error * pages during development.
155
+
156
+ .. versionadded :: 2.6
157
+ This feature was introduced in Symfony 2.6. Before, the third-party
158
+ `WebfactoryExceptionsBundle `_ could be used for the same purpose.
159
+
160
+ To use this feature, you need to have a definition in your
161
+ ``routing_dev.yml `` file like so:
162
+
163
+ .. configuration-block ::
164
+
165
+ .. code-block :: yaml
166
+
167
+ # app/config/routing_dev.yml
168
+ _errors :
169
+ resource : " @TwigBundle/Resources/config/routing/errors.xml"
170
+ prefix : /_error
171
+
172
+ If you're coming from an older version of Symfony, you might need to
173
+ add this to your ``routing_dev.yml `` file. If you're starting from
174
+ scratch, the `Symfony Standard Edition `_ already contains it for you.
175
+
176
+ With this route added, you can use URLs like
177
+
178
+ .. code-block :: text
179
+
180
+ http://localhost/app_dev.php/_error/{statusCode}
181
+ http://localhost/app_dev.php/_error/{statusCode}.{format}
182
+
183
+ to preview the *error * page for a given status code as HTML or for a
184
+ given status code and format.
185
+
186
+ .. tip ::
187
+
188
+ You should not set ``kernel.debug `` to ``false `` in order to see your
189
+ error pages during development. This will also stop
190
+ Symfony from recompiling your twig templates, among other things.
191
+
192
+ .. _`WebfactoryExceptionsBundle` : https://github.com/webfactory/exceptions-bundle
193
+ .. _`Symfony Standard Edition` : https://github.com/symfony/symfony-standard/
194
+
156
195
.. _custom-exception-controller :
157
196
158
197
Replacing the Default ExceptionController
@@ -235,6 +274,11 @@ template to be used.
235
274
As of writing, the ``ExceptionController `` is *not * part of the
236
275
Symfony API, so be aware that it might change in following releases.
237
276
277
+ .. tip ::
278
+
279
+ The :ref: `error page preview <testing-error-pages >` also works for
280
+ your own controllers set up this way.
281
+
238
282
.. _use-kernel-exception-event :
239
283
240
284
Working with the kernel.exception Event
0 commit comments