Classe, retour constructeur pour éviter le bricolage

aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009 - 24 nov. 2004 à 23:16
aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009 - 25 nov. 2004 à 16:54
Bonjour (enfin bonsoir)

voila j'ai une classe qui "gere" ses erreurs :
elle possède un attribut erreur de type tableau qui conserve l'erreur courante... jusque la rien de sorcier... sauf que j'aime bien que mes fonctions renvoie des valeurs genre vrai/faux ou 0,1 ou -1 ou NULL ou une ressource...
et donc mon constructeur j'aimerais bien qu'il renvoie NULL quand l'initialisation de certains attributs est incorrecte (mauvais type, format incorrect,...) mais si je renvoie null dans le constructeur en cas d'erreur, ben bien sur que je pourrais pas appeler ma fonction d'affichage d'erreur...
donc j'ai été obligé de bricoler pour le constructeur ... toutes les autres fonctionnent sur le principe de renvoie (par exemple) vrai en cas de succès, faux en cas d'échec auquel cas Erreur contient le numéro et le message d'erreur
et quand j'utilise le constructeur (qui ne revoie pas null ou faux en cas d'erreur pour pouvoir récupérer l'erreur éventuel)
$monObjet = new Objet('id23',500);
if($monObjet->erreurSurvenue())
{
$monObjet->afficherErreur(MESSAGE_XML);
$monObjet = NULL;
}
else
{
if($monObjet->fonction1(45)==false)
{
$monObjet->afficherErreur(MESSAGE_XML);
}
else
{
echo "c'est ok";
}
}

bref le bricolage pour vérifier et récuperer l'erreur apres l'appel du constructeur et j'aimerais bien faire un truc propre mais la j'avoue que je sèche et comme ça me plait pas... ben je me dis que peut etre quelqu'un pourrait me proposer une méthode...

merci d'avance...
-------------
Aurél :big)

2 réponses

mixo11 Messages postés 20 Date d'inscription samedi 20 novembre 2004 Statut Membre Dernière intervention 28 janvier 2005
25 nov. 2004 à 07:59
Pourquoi tu fais pas une classe erreur ?
qui te ferait tout et global à tout genre :

class erreur
[...]

$erreur->verifenonull(($monObjet = new Objet('id23',500)));
$erreur->verifie_fase($monObjet->fonction1(45));

Ta classe non seulement verifierait ce qu'ol faut vérifier mais tu pourais afficher les messages que tu veux sans te prendre la tete avec des if / else dans ton code principal.

C'est juste une idée. Je sais pas si ca peut te servir.
0
aurelien0306 Messages postés 181 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 2 mars 2009
25 nov. 2004 à 16:54
Salut merci d'avoir répondu...
Cependant ça me chagrine un peu car... j'aimerais que mon module soit "indépendant" ... or la j'aurai besoin de déclarer deux variables ... une de type Erreur et une de type monObjet...
or je veux que le module soit utilisable "sans dépendre d'autres classes" (entre guillemets) donc que celui qui l'utiliser n'ait qu'une seule variable à se préoccuper : l'instance de son objet...
voila... mais merci quand meme car si je vois pas d'autre solution c'est la tienne que je retiendrais surement

merci encore :)
-------------
Aurél :big)
"[...] et de quoi est-ce que je me rends pas compte ?.... il en manquait un!"
0
Rejoignez-nous