
Envoyé par
ePoX
Perso il y à quand même des points qui me chagrinnent.
- Tu mélanges l'*affichage* et le *métier*, à mon sens ces deux actions qui agissent dans deux buts distincts devraient être clairement séparés.
Après il n'est peut pas nécessaire de faire une grande classe de malade pour ces fonctions de vue, peut être qu'une classe avec des méthodes statiques fera l'affaire. Mais fais au moins en sorte que sémantiquement les différents rôles soit clairement énoncé dans de différentes classes/fonctions(proc.).
Oui je suis d'accord, je vais faire ca.
- Autre point qui m'embete, c'est que tes constructeurs tire obligatoirement des informations depuis la BDD. Hors ceci n'est pas vrai. Tu devrais pouvoir instancier un objet qui soit simplement vide, pour pouvoir au final l'enregistrer dans la base.
Dans un sens oui, je suis d'accord. Le pb de mon code c'est que les instances sont forcément des données existantes. Je ne peux pas en créer une vide... c'est problématique. Seulement, c'est tellement pratique d'avoir juste a instancier, un tournois ou un joueur avec l'id et d'avoir toutes ses données sous la main. Et comme on ne peut pas surcharger le constructeur... c'est un peu embetant ...
Je rajouterais aussi que tu n'exprimes pas clairement ce que tu fais. En effet si moi je veux me servir de ta classe, je n'ai pas forcèment envie de lire ton code pour savoir comment il fonctionne. Et malheur à moi si j'essaie d'instancier un joueur alors que je ne suis pas connecté a la base.... J'aurais une erreur pour quelque chose que je n'avais pas prévu, puisque ce n'était pas exprimé dans la méthode que j'appelais, en l'occurence le constructeur.
C'est vrai j'ai pas fait du code "réutilisable" et "partageable" ce qui est quand meme un des gros atouts de la POO. Ceci dit, ce que je fais est assez spécifique...
Pour ce qui est ton problème de fonction d'affichage de tournois à part en décomposant ton problème en de multiples sous fonctions je voit mal comment optimiser le process en php4. En php5, peut être qu'une classe abstraite aurait put fait l'affaire, mais dans les deux cas tu auras à décomposer ton problème, pour mieux réutiliser chacune des petites foncitons dans les plus grosses.
Je vais faire ce que tu m'as dit, je vais détacher ca de la classe, ca me semble plus propre également.
Quand à la surcharge via func_get_args perso je l'ai banni, car je trouve cela imbitable et incodable sur le long terme .
bbye
Partager