テスト環境のデバッグページではなく、エラーページ(アプリの例外が発生した後)を取得したい。
Twig Bundle コードを追跡しましたが、答えは findTemplate() メソッドのSymfony\Bundle\TwigBundle\Controller\ExceptionControllerクラスにあります。ここでは、テンプレートを選択する責任あるコードの断片をコピーします。
$name = $debug ? 'exception' : 'error';
if ($debug && 'html' == $format) {
$name = 'exception_full';
}
このコードに問題はありません。ポイントは、テスト環境で ExceptionController の$debug変数を false に設定できないことです。
TwigBundle Configuration Referenceに基づいて、config_test.ymlで debug パラメータを false に設定するだけで十分なはずです。
twig:
debug: false
これは機能していません。
Symfony コードを閲覧したところ、vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xmlでこのフラグメント構成を見つけました。
<service id="twig.controller.exception" class="%twig.controller.exception.class%">
<argument type="service" id="twig" />
<argument>%kernel.debug%</argument>
</service>
したがって、構成ファイルに何を設定しても、デバッグ変数の値は変更されません。
あなたはそれについてどう思いますか?
私は Symfony 2.2.1 を使用していますが、この質問はこの他の質問に関連しています。