出力バッファに問題があります。スクリプトをバッファリングし、コールバックを使用して結果を出力しています。問題は、いずれかの時点でエラーがスローされた場合、何も表示されず、空白の画面が表示されることです。独自のカスタムエラーハンドラーを設定しようとしましたが、何も機能しないようです。これは、エラーが原因で、バッファがエラーハンドラではなくコールバックメソッドを呼び出すためだと感じています。それか、静的メソッドとしてエラーハンドラーがあるためですが、それを変更すると他の場所で問題が発生します。
これは私を困惑させているので、私は本当に助けていただければ幸いです!
public function constructor()
{
ob_start(array(__CLASS__, 'render'));
self::$buffer_level = ob_get_level();
set_error_handler(array(__CLASS__, 'exception_handler'));
set_exception_handler(array(_CLASS__, 'exception_handler'));
RUNNING MY SCRIPT HERE
ob_end_flush();
}
public static function exception_handler($exception, $message = NULL, $file = NULL, $line = NULL)
{
while (ob_get_level() > self::$buffer_level)
{
ob_end_clean();
}
echo $exception.' - '.$message.' - '.$file.' - '.$line.'<br/>';
}