- 1
[Opened] jForms
Posted by yamsuz on 06/02/2011 11:02
Bonjour à tous,
J'ai un petit soucis que j'ai résolu mais je voulais savoir si la modif était intéressante pour Jelix.
J'ai un jForm que je charge grace au dao.
$form = jForms::create("MonjFom", $monID); $form->initFromDao("MonDao");
Pas de problème à ce niveau. Sauf lorsque l'id n'existe pas. Alors vous allez me dire que je dois faire un test avant pour vérfier que l'ID existe, mais je trouve ça un peu lourd à faire, ça fait 2 requetes sur le serveurs BDD pour la même chose. Sachant que la fonction initFromDao fait déjà la requete. N'est-il pas possible au lieu de renvoyer une erreur de renvoyer null ce qui permettrait automatiquement de tester si l'ID existe bien.
Actuellement la fonction initFormDao test si le record existe, s'il n'existe pas, il génére une erreur, ce qui est bien, mais pour éviter l'erreur on doit faire des tests inutiles puisque la fonction les fait déjà.
[Opened] jForms
Posted by laurentj on 06/02/2011 11:57
Et les try/catch mon cher ? ;-)
$form = jForms::create("MonjFom", $monID); try { <code> $form->initFromDao("MonDao");
} catch(Exception $e) {
// code si l'enregistrement n'existe pas
}
</code>[Opened] jForms
Posted by yamsuz on 06/02/2011 12:12
Je connais bien les try catch, mais j'évite à tout prix de les éviter, je considère que les try catch sont fait pour des exceptions (des vrais) je ne considère pas mon cas comme une exception puisqu'il y a moyen de faire un test pour éviter l'erreur.
Je considère que le try catch peut etre utilisé par exemple sur la connexion à la BDD (le cable est débranché etc ...) ça c'est une exception.
De plus programmer avec des try catch je ne trouve pas ça propre.
J'ai trouvé la solution de mon coté, mais je voulais simplement soulever le "problème" au cas ou.
[Opened] jForms
Posted by laurentj on 06/02/2011 12:34
je considère que les try catch sont fait pour des exceptions (des vrais)
Ta définition de "vrai" exception n'est pas la mienne.
Les exceptions, ce n'est pas pour les erreurs purement techniques, ça peut tout à fait être utilisé pour les erreurs fonctionnelles. Et puis d'ailleurs, le fait d'indiquer un id d'un enregistrement non existant, c'est une erreur technique, puisque cela empêche la méthode de fonctionner correctement, d'où l'exception. Pour moi, il faut donner un id valide pour appeler cette méthode. point.
De plus programmer avec des try catch je ne trouve pas ça propre.
pourtant tu es d'accord d'utiliser des exceptions dans certaines circonstances. tu n'es pas logique avec toi même :-p
Les exceptions est un moyen d'interrompre tout une chaine d’exécution de manière propre. ça évite, à chaque niveau d'une pile d'appel, d'avoir à faire des tests si la méthode appelée renvoi bien la bonne valeur ou pas (et encore, quand c'est vraiment testé). Bref, ça simplifie beaucoup de choses.
Je ne dis pas maintenant qu'il faille utiliser des exceptions à tout va, mais pour moi, l'exception dans initFromDao est tout à fait justifiée.
[Opened] jForms
Posted by yamsuz on 06/02/2011 12:45
Pour moi, il faut donner un id valide pour appeler cette méthode.
Je suis d'accord avec toi, mais il se trouve que j'ai rappatrié des données d'un autre programme et les problèmes sont apparus bizarrement avec les anciennes données. Je peux m'amuser à vérifier toutes les données mais dans ce cas, ça génére d'autres problèmes derrières.
Quand je dis que je ne trouve pas ça propre c'est le fait d'utiliser un try catch pour faire des tests. En plus j'ai un doute sur la rapidité de l'éxécution du code lors d'un passage dans le try catch je sais que beaucoup de language perdent beaucoup de temps en passant dedans. En php j'ai un doute à ce niveau.
Attention je n'ai jamais dis que l'exeception n'est pas justifiée. Je suis d'accord avec toi qu'elle est justifié, mais je considére que les problèmes que je peux rencontrer peuvent arriver à d'autres et ça fait pas de mal d'en discuter (autour d'un verre ça serait plus sympa mais bon :-))
- 1