Php Symfony2中用于开发和生产的不同错误模板

Php Symfony2中用于开发和生产的不同错误模板,php,symfony,templates,error-handling,twig,Php,Symfony,Templates,Error Handling,Twig,在文档之后,我能够添加我自己的错误模板 app |- Resources | | - TwigBundle | | |- view | | | |- Exception | | | | |- exception.html.twig | | | | |- error.html.twig | | | | |- error400.html.twig | | | | |- error404.html.twig | | | | |- e

在文档之后,我能够添加我自己的错误模板

app
 |- Resources
 |  | - TwigBundle
 |  |  |- view
 |  |  |  |- Exception
 |  |  |  |  |- exception.html.twig
 |  |  |  |  |- error.html.twig
 |  |  |  |  |- error400.html.twig
 |  |  |  |  |- error404.html.twig
 |  |  |  |  |- error500.html.twig
 |  |  |  |- layout.html.twig
 |- config
这工作得很好,但是如何为我的开发环境保留堆栈跟踪和详细的错误呢

在生产环境中,我希望使用自己的模板,在开发环境中,我希望使用Symfony2自己的模板

app
 |- Resources
 |  |- TwigBundle
 |  |  |- view
 |  |  |  |- Exception
 |  |  |  |  |- exception.html.twig
 |  |  |  |  |- error.html.twig
 |  |  |  |  |- error400.html.twig
 |  |  |  |  |- error404.html.twig
 |  |  |  |  |- error500.html.twig
 |  |  |  |- layout.html.twig
 |  |- view
 |  |  |- my_custom_error_layout.html.twig
 |- config
my_custom_error_layout.html.twig

my_custom_error_layout.html.twig


在我们最近的项目中,我们实现了一个自定义配置,如下所示:

    <!-- Acme Exception Listener -->
    <service id="kernel.listener.customer_area_exception_listener" class="AcmeSecurityBundle\Listener\AcmeExceptionListener">
        <argument type="service" id="templating" />
        <argument>%acme.exceptions.debug%</argument>
        <tag name="kernel.event_listener" event="kernel.exception" method="onKernelException" />
    </service>

%acme.exceptions.debug%
使用参数(来自
parameters.yml
)来区分环境中的行为

异常侦听器知道如何呈现每种类型的异常,以及自定义异常


希望此帮助

在我们最近的项目中,我们实现了一个自定义配置,如下所示:

    <!-- Acme Exception Listener -->
    <service id="kernel.listener.customer_area_exception_listener" class="AcmeSecurityBundle\Listener\AcmeExceptionListener">
        <argument type="service" id="templating" />
        <argument>%acme.exceptions.debug%</argument>
        <tag name="kernel.event_listener" event="kernel.exception" method="onKernelException" />
    </service>

%acme.exceptions.debug%
使用参数(来自
parameters.yml
)来区分环境中的行为

异常侦听器知道如何呈现每种类型的异常,以及自定义异常


希望这个帮助

我昨晚也做了同样的事情,就我在
Symfony2
v2.5
)上看到的,当我处于
dev
模式时,仍然抛出带有完整堆栈跟踪的“绿色”外星人页面。但是,如果我移动到
prod
,则会显示我的自定义错误页面。对我来说,情况似乎不是这样,嗯。你是否在
应用程序中设置了与我相同的模板?
?同样,我只有
error403.html.twig
。您是否在其他方面使用了Symfony 2.6?从
2.6
2.5
,我有错误和异常,他们通过预览错误页面简化了一些事情。403是否在开发模式下被覆盖?如果
dev
no,但在
prod
yes中。在某一点上,我希望是这样,因为它确实减慢了对
error403.html.twig
布局的测试(必须
cache:clear
在每次更改后…)我昨晚也做了同样的事情,就我所能看到的
Symfony2
v2.5
)仍然抛出带有完整堆栈跟踪的“绿色”外星人页面,当我处于
dev
模式时。但是,如果我移动到
prod
,则会显示我的自定义错误页面。对我来说,情况似乎不是这样,嗯。你是否在
应用程序中设置了与我相同的模板?
?同样,我只有
error403.html.twig
。您是否在其他方面使用了Symfony 2.6?从
2.6
2.5
,我有错误和异常,他们通过预览错误页面简化了一些事情。403是否在开发模式下被覆盖?如果
dev
no,但在
prod
yes中。有一次,我希望是这样,因为它真的减慢了对
error403.html.twig
layout的测试(每次更改后必须
cache:clear
    <!-- Acme Exception Listener -->
    <service id="kernel.listener.customer_area_exception_listener" class="AcmeSecurityBundle\Listener\AcmeExceptionListener">
        <argument type="service" id="templating" />
        <argument>%acme.exceptions.debug%</argument>
        <tag name="kernel.event_listener" event="kernel.exception" method="onKernelException" />
    </service>