Skip to content

Commit

Permalink
feature #3577 Development of custom error pages is impractical if you…
Browse files Browse the repository at this point in the history
… need to set kernel.debug=false (mpdude)

This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes #3577).

Discussion
----------

Development of custom error pages is impractical if you need to set kernel.debug=false

Also see
symfony/symfony#7446 and symfony/symfony#1486

Commits
-------

6aa90e0 Use WebfactoryExceptionsBundle instead of webfactory/exceptions-bundle
2fee263 Update error_pages.rst
435019c Point out the difference between error and exception pages.
2194607 Add a pointer to webfactory/exceptions-bundle which helps with development of custom error pages.
  • Loading branch information
weaverryan committed Mar 9, 2014
2 parents 3f4b319 + 859c61d commit 5ad1599
Showing 1 changed file with 21 additions and 2 deletions.
23 changes: 21 additions & 2 deletions cookbook/controller/error_pages.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,30 @@ control you need:
which allows complete control over exception handling. For more
information, see :ref:`kernel-kernel.exception`.

The default ``ExceptionController`` will either display an
*exception* or *error* page, depending on the setting of the ``kernel.debug``
flag. While *exception* pages give you a lot of helpful
information during development, *error* pages are meant to be
shown to the end-user.

.. sidebar:: Testing Error Pages during Development

You should not set ``kernel.debug`` to ``false`` in order to see your
error pages during development. This will also stop
Symfony2 from recompiling your twig templates, among other things.

The third-party `WebfactoryExceptionsBundle`_ provides a special
test controller that allows you to display your custom error
pages for arbitrary HTTP status codes even with
``kernel.debug`` set to ``true``.

All of the error templates live inside the TwigBundle. To override the
templates, simply rely on the standard method for overriding templates that
live inside a bundle. For more information, see
:ref:`overriding-bundle-templates`.

For example, to override the default error template that's shown to the
end-user, create a new template located at
For example, to override the default error template, create a new
template located at
``app/Resources/TwigBundle/views/Exception/error.html.twig``:

.. code-block:: html+jinja
Expand Down Expand Up @@ -110,3 +127,5 @@ Symfony uses the following algorithm to determine which template to use:
customized in the same way by creating templates such as
``exception.html.twig`` for the standard HTML exception page or
``exception.json.twig`` for the JSON exception page.

.. _`WebfactoryExceptionsBundle`: https://github.com/webfactory/exceptions-bundle

0 comments on commit 5ad1599

Please sign in to comment.