2017-03-28 2 views
1

set_exception_handlerとset_error_handlerを例外やエラーを適切に処理するように設定しましたが、それでも致命的なエラーは発生しません。致命的なエラーをキャッチするときにエラースタックを表示しない方法

私はこの試みた:

register_shutdown_function("fatal_handler"); 

function fatal_handler() 
{ 
    FlashMessages::flashIt('message', 'Fatal error'); 
    include(Settings::ABSPATH . '/src/views/message.php'); 

    $error = error_get_last(); 

    if ($error !== null) { 
     $errno = $error[ "type" ]; 
     $errfile = $error[ "file" ]; 
     $errline = $error[ "line" ]; 
     $errstr = $error[ "message" ]; 

     var_dump($error); 
    } 
} 

をし、私は実際にエラーをダンプすることができるよ、が、ページの一番上にフルスタックのエラーを回避する方法はありません。 エラースタックの表示を避けるにはどうすればよいですか?

enter image description here

+2

いけない、それをダンプ!または、言うことができます:開発コードを削除します。関数の最初の行をif文に移動し、 '$ error [" type "] == 1"を調べて、シャットダウン関数の致命的なエラーだけをキャッチします。 – JustOnUnderMillions

答えて

2
register_shutdown_function("fatal_handler"); 

function fatal_handler() 
{ 
    $error = error_get_last(); 
    if ($error[ "type" ] == 1) { //only fatal errors 
    $errno = $error[ "type" ]; 
    $errfile = $error[ "file" ]; 
    $errline = $error[ "line" ]; 
    $errstr = $error[ "message" ]; 

    FlashMessages::flashIt("'$errstr' in $errfile in line $errline ", 'Fatal error'); 
    include(Settings::ABSPATH . '/src/views/message.php'); 
    } 
} 

とPHPが出力した生産のエラーを示してはいけません。

ini_set('display_errors', 0); 
ini_set('display_startup_errors', 0); 

How do I get PHP errors to display?

Turn Off Display Error PHP.ini

関連する問題