12

PHP で可能な限り最高のエラー報告レベルを使用すべきではない理由を教えてください。

最高レベルを設定する方法:

PHP < 5.4:

error_reporting(E_ALL | E_STRICT);

PHP >= 5.4:

error_reporting(E_ALL);

PHPのすべてのバージョン(構成ファイルに推奨):

error_reporting(2147483647);

PHPのすべてのバージョン(私の構成、-1 にはすべてのエラーが含まれ、覚えやすい)

error_reporting(-1);

私の経験:

  • 報告レベルが低い理由はない
  • エラー制御演算子を使用したことがない
  • set_error_handlerとカスタマイズされた例外クラスを介してすべてのエラーを例外に変換し、ファイルと行を上書きするために使用します
4

4 に答える 4

23

私は個人的に、最高レベルのエラー報告でコーディングし、コードによって生成されたすべての警告を修正することを好みます。ただし、より低いレベルで作業したい理由がいくつか考えられます。

  1. 多くの警告を発するレガシー コードを使用している可能性があります。コードが正しく機能する場合、これは問題ではありませんが、「ノイズ」が気を散らし、実際の問題を確認できなくなる可能性があります。この状況では、エラー報告レベルを下げることが望ましい場合があります。
  2. 本番環境では、エラーのみを記録したい場合があります。これには 2 つの利点があります。つまり、エラー ログには注意が必要な重大な問題のみが含まれ、ディスク容量が節約されます (そしてディスク I/O が減少します)。

余談ですが、実稼働環境では、「display_errors = Off」および「error_logging = On」を実行して、ユーザーが PHP エラー (データベース接続プロパティなどの機密情報が含まれている可能性があります) を表示しないようにし、発生したエラーのログを収集する必要があります。そのため、本番環境の error_reporting レベルと関連する設定は、開発環境で実行したいものとは異なる場合があります。

于 2009-06-24T06:26:49.653 に答える
2

おそらくジムが彼の最初のポイントで言っている、変更できない、または変更されないレガシーコードを実行していることを除いて、正当な理由はないと思います。

開発中に最高レベルで実行し、そうしない大きな理由がない限り、すべての警告と通知を一掃する必要があります。

開発中に通知を修正しない十分な理由がある場合は、それを文書化し、エラー制御演算子を使用してログが乱雑にならないようにする必要があります。

于 2009-06-24T06:35:48.827 に答える
1

Jim の指摘に加えて、最高レベルのエラー報告を使用してコーディングすることを常にお勧めします。これにより、移植性が向上し、(問題はあるかもしれませんが) パフォーマンスが向上するはずです。

于 2009-06-24T11:16:38.970 に答える
0

システム管理者のPoVからは、コードのレガシーまたは新規について何もできない場合があります。一部の開発者は適切にデバッグせず、本当に重要ではないことで誰かの時間を無駄にすると、マネージャーはあなたを面白く見ます(これが誰かを混乱させるかどうかはわかりませんが、結果が前後で同じである場合、その後、それは実際には重要ではありません)。私は、通知を無効にして、実際の問題に集中できることを非常に嬉しく思います。

また、これは暗闇の中でのショットですが、error_log()呼び出しを使用して、デバッグの観点からこれを少し凝った方法で実行する方法があるかもしれません。

于 2009-06-26T04:49:13.460 に答える