Plusieurs constructeurs ? possible ?
Posté : 09 juin 2006, 17:45
Bonjour à tous,
Désolé pour le titre peu explicite mais c'est pas évident de tout dire en peu de caracteres.
Voilà ma situation : Je suis en train actuellement de me faire un gestionnaire d'erreurs pour mon site.
Pour cela je surcharge la classe Exception. De plus, je souhaite gérer les erreurs php (E_WARNING, E_ERRORS)... comme expliqué dans un tuto que j'ai trouvé.
Pour pouvoir faire tout ca, il faut prendre par le debut :
La surcharge de la classe Exception :
Donc ici rien de bien méchant, on surcharge et voilà tout. On remarque bien que le constructeur comporte un seul parametre.
Maintenant, si je souhaite pouvoir inclure les exceptions php, je dois changer mon error_handler.
Pour cela il faudra que je passe plus de parametres à mon constructeur d'Exceptions. C'est là que ça se gate !
Je n'ai pas encore trouvé le moyen d'envoyer soit un soit plusieurs parametres à un meme constructeur en php (alors que dans d'autres langages c'est largement faisable).
Sauriez vous si cela existe mais que j'ai tout simplement pas trouvé ou bien comment je pourrais faire pour y palier svp ?
Voici comment je voudrais procéder pour la gestion des exceptions php :
Merci d'avance
@++
Désolé pour le titre peu explicite mais c'est pas évident de tout dire en peu de caracteres.
Voilà ma situation : Je suis en train actuellement de me faire un gestionnaire d'erreurs pour mon site.
Pour cela je surcharge la classe Exception. De plus, je souhaite gérer les erreurs php (E_WARNING, E_ERRORS)... comme expliqué dans un tuto que j'ai trouvé.
Pour pouvoir faire tout ca, il faut prendre par le debut :
La surcharge de la classe Exception :
Code : Tout sélectionner
<?php
class MyException extends Exception {
// Constructeur de la classe.
// Il faut bien penser à rapeller le constructeur de la classe Exception.
public function __construct($msg) {
parent :: __construct($msg);
}
// Méthode retournant un message d'erreur complet et formaté.
public function getError() {
// On retourne un message d'erreur complet pour nos besoins.
$return = 'Une exception a été gérée :<br/>';
$return .= '<strong>Message : ' . $this->getMessage() . '</strong><br/>';
$return .= 'A la ligne : ' . $this->getLine() . '<br/>';
$return .= 'Dans le fichier : ' . $this->getFile() . '<br/>';
$return .= 'Il était : ' . $this->getTime();
return $return;
}
}?>Maintenant, si je souhaite pouvoir inclure les exceptions php, je dois changer mon error_handler.
Pour cela il faudra que je passe plus de parametres à mon constructeur d'Exceptions. C'est là que ça se gate !
Je n'ai pas encore trouvé le moyen d'envoyer soit un soit plusieurs parametres à un meme constructeur en php (alors que dans d'autres langages c'est largement faisable).
Sauriez vous si cela existe mais que j'ai tout simplement pas trouvé ou bien comment je pourrais faire pour y palier svp ?
Voici comment je voudrais procéder pour la gestion des exceptions php :
Code : Tout sélectionner
function myErrorHandler($level, $string, $file, $line, $context){
throw new MyException($level, $string, $file, $line, $context);
}
//Définition du gestionnaire d'erreur
set_error_handler('myErrorHandler');
@++