2009-09-08 19 views
1

出力バッファに問題があります。私はスクリプトをバッファリングしてコールバックを使用して結果を出力しています。問題は、エラーがスローされた場合、何も表示されず、空の画面が表示されることです。私は自分のカスタムエラーハンドラを設定しようとしましたが、何も動かないようです。エラーが原因で私のバッファがエラーハンドラの代わりにコールバックメソッドを呼び出す原因となっていると感じています。どちらか、それは私が静的メソッドとしてエラーハンドラを持っているが、それを変更することは他の場所で問題を引き起こすからです。出力バッファ内のエラー

私は本当に助けてくれてありがとうございます。

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(_C_LASS__, '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/>'; 
} 
+0

Zend_Frameworkにも同様の問題があります。本当に必要なのは、すべてのob_をダンプして例外の詳細を出力するErrorHandlerです。 print_r()の時間を節約し、死ぬ( 'ここで私は')のステートメント... – Steve

答えて

0
_C_LASS__ 

あなたがくそ_そこ

0

を置き忘れようになっていることが問題を引き起こしているものではありませんので、それは、実際のスクリプトではありませんタイプミスです。しかし、良いスポット!

関連する問題