2

Symfony の twig エラー ページを完全に無効にしたいと考えています。ここで説明されているようにカスタマイズしたくありません: http://symfony.com/doc/2.0/cookbook/controller/error_pages.htmlではなく、単純に twig の例外処理メカニズムを取り外して、古き良き php エラーで終わります。

それはまったく可能ですか?

4

2 に答える 2

10

小枝のエラーページを無効にするには、次のようなものを追加するだけです

services:
   twig.exception_listener:
     class: DateTime #or another dummy class

app/config.yml に

この後、Symfony\Component\HttpKernel\Debug\ExceptionHandler によって生成された非常に単純な画面が表示されます。この動作を削除したい場合は、このクラスを置き換えるか、単に set_exception_handler 呼び出しをコメント化してください。

public static function register($debug = true)
{
    $handler = new static($debug);

    set_exception_handler(array($handler, 'handle'));

    return $handler;
}
于 2012-11-29T19:13:37.330 に答える
0

Symfony 3.x では、次のように実行できます。

services.ymlに、リスナーのオーバーライドを追加します (@Ziumin の回答のように):

services:
  twig.exception_listener:
    class: stdObject

app_dev.phpで、 の行をコメント アウトします。これDebug::enable();により、簡略化されたエラー処理ページも無効になります (フレームワークからファイルを変更する必要はありません)。

その後、独自の例外ハンドラを追加できます。

// Disable error handling page:
// Debug::enable();

set_exception_handler(function($e) {
    $msg = array();
    $msg[] = 'Exception: ' . $e->getMessage() . ' at ' . $e->getFile() . ':' . $e->getLine();
    $msg[] = '';
    $msg[] = $e->getTraceAsString();
    echo implode("\n", $msg);
});
于 2016-10-07T08:42:06.490 に答える