2009-09-08 6 views
1

Je rencontre des problèmes avec le tampon de sortie. Je tamponne mon script et j'imprime le résultat en utilisant un rappel. Le problème est que si une erreur est lancée à tout moment, rien n'est affiché et je reçois un écran vide. J'ai essayé de définir mes propres gestionnaires d'erreurs, mais rien ne semble fonctionner. J'ai l'impression que c'est parce que les erreurs provoquent mon tampon pour appeler la méthode de rappel au lieu de mon gestionnaire d'erreur. Soit ça, soit parce que j'ai le gestionnaire d'erreurs comme méthode statique, mais changer cela cause des problèmes ailleurs.Erreurs à l'intérieur du tampon de sortie

J'apprécierais vraiment n'importe quelle aide parce que celui-ci m'a perplexe!

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

J'ai un problème similaire dans Zend_Framework: ce que je veux vraiment, c'est un ErrorHandler qui vide tous les ob_ et imprime les détails de l'exception. Permet d'économiser des heures de print_r() et de mourir ('here i'm') ... – Steve

Répondre

0
_C_LASS__ 

On dirait que vous avez égaré un _ il

0

Bon sang, qui est en fait une faute de frappe qui n'est pas dans le script, de sorte que ce n'est pas ce qui est à l'origine du problème. Bon endroit cependant!

Questions connexes