10-06-2009, 11:31 PM
Dans l'approche de naholyr, je vois pas où est le problème. La partie métier est commune aux joueurs et aux pnj, la partie affichage est différente : un fichier pour chacun. Donc si tu veux modifier l'affichage de l'un ou de l'autre, t'as juste à modifier le fichier correspondant. Si tu veux créer un affichage nouveau, du genre tous les persos présents sur la map ( pnj + joueurs ), ben tu te crées un nouveau fichier template, mais tu touches rien aux autres. Il n'est pas question de factoriser l'affichage des données de deux entités différentes dans un seul fichier.
Pour ton exemple dérangeant, là non plus je vois pas où ça cloche, c'est pas un problème de généricité, c'est la même chose. Si t'as 1 façon d'afficher tes données, t'as 1 fichier template, si t'en as 10, t'as 10 fichiers templates ( ou partiels, c'est pareil... ). Le truc cool c'est que tu te retapes pas 10 fois le code pour afficher le header, le menu, te connecter à la base de données, récupérer les données, afficher le footer, gérer les sessions etc etc. Et que le jour où tu veux changer un petit détail quelque part, tu fais la modif 1 fois, plutôt que de la faire dans tes 10 fichiers.
Ensuite, à toi de voir si tu t'amuses à mettre 10 if / elseif, un switch, un tableau et un seul et unique if (in_array(...))... Les solutions ne manquent pas, mais rien à voir avec un prob de généricité. Juste une question de contrôle des données / sécurité.
Si t'as fait comme ça pour un jeu X et que tu refais un jeu Y qui suit la même logique, tu pourras garder la logique de traitement. Tu seras de toute façon bien obligé de modifier la couche d'accès aux données et la couche affichage des données puisque le jeu est différent. Mais au moins le squelette sera déjà en place.
J'ai plusieurs fois été confronté à des sites où y avait très peu de fonction, pas du tout de template. Donc pour faire une modif sur le site, obligé de modifier toutes les pages... C'est rageant.
Pour ton exemple dérangeant, là non plus je vois pas où ça cloche, c'est pas un problème de généricité, c'est la même chose. Si t'as 1 façon d'afficher tes données, t'as 1 fichier template, si t'en as 10, t'as 10 fichiers templates ( ou partiels, c'est pareil... ). Le truc cool c'est que tu te retapes pas 10 fois le code pour afficher le header, le menu, te connecter à la base de données, récupérer les données, afficher le footer, gérer les sessions etc etc. Et que le jour où tu veux changer un petit détail quelque part, tu fais la modif 1 fois, plutôt que de la faire dans tes 10 fichiers.
Ensuite, à toi de voir si tu t'amuses à mettre 10 if / elseif, un switch, un tableau et un seul et unique if (in_array(...))... Les solutions ne manquent pas, mais rien à voir avec un prob de généricité. Juste une question de contrôle des données / sécurité.
Si t'as fait comme ça pour un jeu X et que tu refais un jeu Y qui suit la même logique, tu pourras garder la logique de traitement. Tu seras de toute façon bien obligé de modifier la couche d'accès aux données et la couche affichage des données puisque le jeu est différent. Mais au moins le squelette sera déjà en place.
J'ai plusieurs fois été confronté à des sites où y avait très peu de fonction, pas du tout de template. Donc pour faire une modif sur le site, obligé de modifier toutes les pages... C'est rageant.