3

テスト環境のデバッグページではなく、エラーページ(アプリの例外が発生した後)を取得したい。

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 を使用していますが、この質問はこの他の質問に関連しています。

4

1 に答える 1

0

環境によるんじゃないの?

app_dev.php のように:

$kernel = new AppKernel('stag', TRUE); #TRUE = debug/dev mode on
$kernel = new AppKernel('stag', FALSE); #FALSE = debug/dev mode off
于 2013-05-30T10:07:43.997 に答える