IDE のデバッグにのみ Xdebug を使用しており、ブラウザーで PHP によってスローされるエラー メッセージの再フォーマットを停止したいと考えています。スタック トレース、テーブル レイアウトなどを除いた通常の PHP エラー メッセージが必要です。どうすればそれを達成できますか?
3 に答える
この場合、次を設定しますxdebug.default_enable=0
。これにより、エラー メッセージのスタック トレースが無効になります。
php.ini で XDebug のスタック トレースを制御できます。
http://xdebug.org/docs/stack_traceを参照してください
完全な設定オプション: http://xdebug.org/docs/all_settings
このコードは、xdebug 構成を変更する必要なく問題を修正します。 https://xdebug.org/docs/all_functions
if (function_exists('xdebug_disable')) {
//Disables stack traces
//Disable showing stack traces on error conditions.
xdebug_disable();
}
Derick が提案した設定xdebug.default_enable=0
はうまく機能しますが、xdebug の設定を変更する必要があります。
を使用して独自のエラーハンドラーを登録することをお勧めします。register_shutdown_function()
xdebug スタック トレースを有効にすると、次の問題が見つかりました。
- 応答コードは常に 200 であり、それをオーバーライドすることはできません
- フォーマットされたエラー メッセージ (たとえば、JSON エラー応答) で応答することが期待される API のようなものに取り組んでいる場合、応答が不正な形式になります。これは、独自の登録済みシャットダウン関数を使用して出力する前に xdebug が出力されるためです。
興味深いことにxdebug.default_enable=0
、xdebug 構成で が指定されていない場合、ini_get('xdebug.default_enable')
文字列 "0" が返されます。設定した場合xdebug.default_enable=0
も文字列「0」です。したがって、ini_get('xdebug.default_enable')
有効になっているかどうかを検出するために使用することはできません。