hello tous,
Je développe toujours mon forum en PHP objet, et je me pose la question :
Les messages d'erreurs doivent se trouver dans la classe ou dans la page php ?
Pour ce qui est de la gestion de l'accès à la BD entre autre, ça me parait clair. Si le serveur n'est pas joignable, l'application ne sait pas se dérouler correctement... donc dans la classe, je fais un echo et un exit. (je me suis inspiré de la PHPlib je l'avoue )
Pour ce qui est par exemple de l'affichage de la liste des sujets, si l'utilisateur n'a pas les droits requis pour lister les sujet d'un forum, ou si le forum n'existe pas, ou s'il est fermé.
- est-il plus correct de faire ces tests dans la méthode d'initialisation du forum (je suis obligé de faire passer l'objet utilisateur pour ces tests) et d'afficher le message d'erreur + exit (même principe que la classe de gestion de la bd):
$forum->setID($idForum, $objuser);
- la même chose mais la méthode retournerait un code d'erreur correspondant. L'affichage du message d'erreur est fait dans la page php :
switch($forum->setID($forumID)){
case 0: break;
case 1: echo "faut être enregistré"; exit; break;
...
default: echo "Problem"; exit; break;
}
inconvénient : les tests sont tous effectués 2x, une fois pour le return error, une fois pour l'affichage du message. Sans compter que théoriquement l'objet forum n'a théoriquement pas besoin de connaitre l'objet user...
- la méthode retournerait true or false en fonction de l'existence du forum (et encore, je peux le faire par après). Tout les autres tests sont effectués dans la page php :
if (!$forum->setID($forumID)){ //ou if (!$forum->exist())
echo "existe pas";
}
if ($forum->getReadAccess()==1 && !$objuser->isRegistered()){
echo "faut être enregistré";
}
...
l'avantage de la dernière méthode vient du fait que si je crée un autre site avec un forum dont les règles ne sont pas les mêmes (pas besoin de gestion de l'utilisateur par ex), ma classe ne doit pas être modifiée.
"l'inconvénient" est ça fait un peu plus fouilli
alors ça vous a inspiré tous ça ?
merci d'avance
[jfdsdjhfuetppo]--Message édité par ethernal le 10-05-2002 à 14:01:07--[/jfdsdjhfuetppo]