1

プロジェクトを Symfony 2.3 に更新してから、php 通知で例外がスローされなくなりました。

配列内の未定義のインデックスにアクセスしようとすると、通知が表示されますが、例外はスローされません。

最初は混乱したと思いましたが、これは以前のバージョンの動作だったのかもしれません。そうでないことを示唆するstackoverflowに関する質問を見つけました。

symfony2 で PHP 通知を処理する方法

Symfony 2.3にsymfony2通知で例外をスローさせる方法はありますか?

4

2 に答える 2

2

boot()FrameworkBundle のメソッドの先頭を見てください。

public function boot()
{
    ErrorHandler::register(null, false)->throwAt($this->container->getParameter('debug.error_handler.throw_at'), true);
    // ...
}

独自のエラー ハンドラーをAppKernel(私が行っていたように) に登録しても、FrameworkBundle はそれをオーバーライドします。ただし、次のdebug.error_handler.throw_atようにパラメーターを使用して FrameworkBundle のエラー ハンドラーを構成できます。

# in config.yml, for example
parameters:
    # ALWAYS throw exceptions for notices, warnings, etc.
    debug.error_handler.throw_at: -1

これがどこかに文書化されていることを知りません。

PHP の通知と警告は、多くの場合、重大なプログラミング エラー (d'oh!) を示しているため、本番環境であっても、常にすべての例外をスローするのが好きです。

于 2016-06-14T18:55:11.343 に答える
-2

私は答えを見つけました。ここは参考までに。

https://github.com/symfony/symfony-standard/blob/master/UPGRADE-2.3.md

于 2013-06-19T01:22:28.330 に答える