05-04-2009, 10:32 AM
yop, j'essaie de construire un système d'événement amenant à une mise à jour de base de données (exemple statistiques d'un match)
ce que j'appelle événement c'est par exemple :
x marque un but contre y / x coupe le bras de y
x rate sa passe / x rate son attaque
l'équipe 1 bat l'équipe 2 / x a tué un loup
etc...
derrière je calculerais différents indicateurs ( nombre de victoires/défaites de l'équipe 1 par l'équipe 2, etc...)
mes hypothèses :
un script php se lance pour résoudre une action (ou une succession d'actions tel un match ou un combat, ou ...) les éventuels résultats directs à long terme sont inscrits dans la bdd via ce script ou des objets dédiés (y perd un bras, équipe 2 éliminée du tournoi, score de demi finale, épée cassée, ....)
par contre j'aimerais construire l'objet générique qui gèrera les statistiques (ou haut fait, quelque part c'est la même chose)
j'ai pensé à ne construire qu'un objet instancié pour chacun des scripts concernés, c'est lui qui recevra les événements, et en fonction de chaque, calculera les indicateurs associés
toto = new gestionnaireEvenement();
et, à chaque événement possible, je ferais un
toto->ajouteEvenement( x,y,z, ....);
A partir de là je ne sais pas trop comment avancer car tous les événements n'ont pas autant de paramètre
exemple "rater une passe" ne nécessite aucun paramètre, en dehors, de qui a raté la passe
mais "marquer un but", ou "dribler", ou "vaincre", nécessite de connaître le gagnant et le vaincu
on pourrait aussi avoir à connaitre nombre de but en moins de x minutes ou encore minimum entre deux buts marqués, ce qui nécessiterait d'envoyer des paramètres de temps pour certaines actions
maintenant je ne pense pas, tant pour la performance, que pour la lourdeur du code, qu'il faille construire une méthode avec tous les arguments possibles et inimaginables et les renseigner dans tous les cas (mais bon je me trompe peut être)
du coup je ne sais pas trop quelle mécanique adoptée pour construire cette affaire... Avez vous une idée ?
de même si vous avez une autre vision de la chose, n'hésitez pas, je n'ai encore rien construit, donc je suis preneur
ce que j'appelle événement c'est par exemple :
x marque un but contre y / x coupe le bras de y
x rate sa passe / x rate son attaque
l'équipe 1 bat l'équipe 2 / x a tué un loup
etc...
derrière je calculerais différents indicateurs ( nombre de victoires/défaites de l'équipe 1 par l'équipe 2, etc...)
mes hypothèses :
un script php se lance pour résoudre une action (ou une succession d'actions tel un match ou un combat, ou ...) les éventuels résultats directs à long terme sont inscrits dans la bdd via ce script ou des objets dédiés (y perd un bras, équipe 2 éliminée du tournoi, score de demi finale, épée cassée, ....)
par contre j'aimerais construire l'objet générique qui gèrera les statistiques (ou haut fait, quelque part c'est la même chose)
j'ai pensé à ne construire qu'un objet instancié pour chacun des scripts concernés, c'est lui qui recevra les événements, et en fonction de chaque, calculera les indicateurs associés
toto = new gestionnaireEvenement();
et, à chaque événement possible, je ferais un
toto->ajouteEvenement( x,y,z, ....);
A partir de là je ne sais pas trop comment avancer car tous les événements n'ont pas autant de paramètre
exemple "rater une passe" ne nécessite aucun paramètre, en dehors, de qui a raté la passe
mais "marquer un but", ou "dribler", ou "vaincre", nécessite de connaître le gagnant et le vaincu
on pourrait aussi avoir à connaitre nombre de but en moins de x minutes ou encore minimum entre deux buts marqués, ce qui nécessiterait d'envoyer des paramètres de temps pour certaines actions
maintenant je ne pense pas, tant pour la performance, que pour la lourdeur du code, qu'il faille construire une méthode avec tous les arguments possibles et inimaginables et les renseigner dans tous les cas (mais bon je me trompe peut être)
du coup je ne sais pas trop quelle mécanique adoptée pour construire cette affaire... Avez vous une idée ?
de même si vous avez une autre vision de la chose, n'hésitez pas, je n'ai encore rien construit, donc je suis preneur