[POO] ma class DATA - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [POO] ma class DATA (/showthread.php?tid=4876) |
[POO] ma class DATA - php_addict - 06-06-2010 bonjour je suis en train de revoir la façon dont j'ai de gérer les données constantes, pour le moment j'utilisais des tableaux de variables et des includes... je tente le coup en POO, et j'aimerais vous soumettre ma class DATA pour que vous me disiez ce que vous en pensez: Code PHP :
mon principal objectif etant de simplifier ceci: je suis en procedural pour le moment et j'utilise des function(): j'ai une fonction qui appelle une autre fonction qui elle même appelle une autre fonction, et les 2 fonctions appelées ont besoin des données constantes $value Code PHP :
est ce que c'est ce que l'on appelle "héritage" en POO, j'avous que je suis en peu largé sur ce point en ce moment bon week end RE: [POO] ma class DATA - Allwise - 06-06-2010 L'héritage est un concept qui porte sur les classes, pas sur les fonctions. Si tu devais porter ton code en POO, tu pourrais mettre les 3 fonctions dans la même classes si elles font toutes les 3 partie de la même entité. Si c'est pas le cas et que tu as plusieurs entités, à toi de voir le lien qui les unit : héritage, composition. Pour les constantes, si tu veux les mettre dans une classe tu dois les déclarer comme tel : Code PHP :
RE: [POO] ma class DATA - php_addict - 06-06-2010 salut, merci pour tes conseils et tes précisions et pour le bout de code par contre on ne peut pas mettre un array dans une constante, quelle serait la solution dans mon cas alors ? je suis en train de lire tout les tuto php/poo et pffff c'est galère pour moi... PS: effectivement mes 3 fonctions font partie de la même entité RE: [POO] ma class DATA - Plume - 06-06-2010 L'héritage permet d'utiliser les méthode d'une classe mère depuis une classe fille.
Sinon, je ne comprends pas ta problématique des constantes. Qu'est-ce que tu n'arrives pas à faire, qu'est-ce que tu veux, ... ? RE: [POO] ma class DATA - Sephi-Chan - 06-06-2010 Moi j'aime les péons ! En fait, php_addict, je pense que tu as un problème plus général avec tes données constantes. Peux-tu nous donner des exemples (plusieurs) de telles données ? Sephi-Chan RE: [POO] ma class DATA - php_addict - 06-06-2010 (06-06-2010, 12:12 PM)Sephi-Chan a écrit : En fait, php_addict, je pense que tu as un problème plus général avec tes données constantes. Peux-tu nous donner des exemples (plusieurs) de telles données ? ok merci de ton aide, voici ce que j'ai comme (mauvaise?) habitude: Mes données constantes: url /include/troupes.php Code PHP :
Exemple d'utilisation des donnees constantes Code PHP :
mes principaux doutes: - si dans une boucle (while) on apelle une function qui include un fichier alors je trouve ca pas très propre. - lors de l'include on inlcut tout les paramètres meme ceux inutiles (mémoire accrue) par exemple pour la resolution d'une attaque on n'a pas besoin de la description du type d'unité RE: [POO] ma class DATA - Sephi-Chan - 06-06-2010 Ok donc, ces données sont les différents types d'unités disponibles dans ton jeu. Je suppose qu'il y a aussi leurs valeurs d'attaque, de défense, de déplacement, etc. ? Pourquoi ne pas les stocker en base de données, puisque tu préfixes (très justement) ton tableau avec le terme DATA ? Ici, ça t'oblige à passer tes données systématiquement à tes fonctions pour qu'elles sachent qu'un chevalier tape à 24 et à une défense de 16. Donc quand tu résous une attaque du joueur A sur le joueur B, pour chaque unité impliquée dans le combat, tu dois aller vérifier ses attributs dans ce tableau de données. Est-ce que je me trompe ? Sephi-Chan RE: [POO] ma class DATA - php_addict - 06-06-2010 (06-06-2010, 02:27 PM)Sephi-Chan a écrit : Je suppose qu'il y a aussi leurs valeurs d'attaque, de défense, de déplacement, etc. ? effectivement (06-06-2010, 02:27 PM)Sephi-Chan a écrit : tu dois aller vérifier ses attributs dans ce tableau de données. Est-ce que je me trompe ? tu as raison je me sens bête maintenant que tu me le dis mais je me sentais obligé de mettre mes données constantes dans des fichiers plutot que dans une base de données...pouquoi? car je voulais une certaine rapidité d'execution mais en réalité cela me bouffe de la mémoire pour rien... donc la solution serait de mettre mes données constante dans une TABLE et de me faire une jolie function de recupération de données en fonction de ce que j'ai besoin ? Merci encore mille fois Sephi-Chan de m'avoir ouvert les yeux sur ma mauvaise gestion de ces donnees RE: [POO] ma class DATA - Sephi-Chan - 06-06-2010 Pas de raison de te sentir bête, tu n'es pas le premier à vouloir réinventer la base de données. Maintenant, pour la solution à adopter, je dois dire que je ne sais pas trop : ça fait bien longtemps que je ne fais plus tout ça à la main. Je pencherai pour une solution simple comme : récupérer les unités d'un joueur en faisant une jointure (grâce à une colonne unit_type_id) et on met tout ça dans un tableau de tableaux (au lieu d'un tableau d'objets si on utilisait la POO). Ainsi, le tableau rendu ressemblerait à ça :
En plus le tableau est aplati, on a vraiment l'impression que les propriétés de l'unité sont hérités d'après son type. Sephi-Chan RE: [POO] ma class DATA - php_addict - 06-06-2010 je vais certainement opter pour cette solution encore merci |