13-11-2012, 07:27 PM
En fait, j'ai un module géant "History" (pattern Flyweight). Chacun des modules du jeu (board, stuff, inventory, messaging, fight, merchant, market, ...) à sa propre implémentation de l'archivage des actions, une classe en somme (stuff_history, inventory_history).
C'est géré automatiquement, je te rassure, c'est mon organisation du code qui le veut comme ça.
Chaque méthode de chacune des classes des modules lève des actions.
Ex : $this->history->raise_action() ou $this->history->raise_notice() ou $this correspond à une classe parente qui va __call directement la bonne classe pour le module appelant. History s'occupe du reste.
Ca, c'est pour stocker tout ça. Pour ce qui est lecture, la classe History gère les opérations : $this->history->parse_action() ou $this->history->parse_notice(). Ces méthodes retournent une chaine parsée comprenant le slug de l'action ou de la notice, ainsi que les données associées.
Oui, il y a beaucoup de notifications et mon but n'est pas d'être en temps réel, mais au chargement de la page, je veux afficher par exemple un icône avec le nombre de nouvelles notifications et au clic, une liste de 10 notifications récentes, par forcément non lues.
Pour le moment, je pensais faire du implémenter en jQuery, une mise à jour au "mouseover", avec un peu d'AJAX. Sachant que la classe History est RESTful via authentification, ca peut être pas mal. C'est simple pourtant : /api/{hash}/history/notice/{slug}/{time} en POST, mais je trouve ça limite de l'amateurisme averti que de se la couler douce en mode jquery 'mouseover'.
C'est géré automatiquement, je te rassure, c'est mon organisation du code qui le veut comme ça.
Chaque méthode de chacune des classes des modules lève des actions.
Ex : $this->history->raise_action() ou $this->history->raise_notice() ou $this correspond à une classe parente qui va __call directement la bonne classe pour le module appelant. History s'occupe du reste.
Ca, c'est pour stocker tout ça. Pour ce qui est lecture, la classe History gère les opérations : $this->history->parse_action() ou $this->history->parse_notice(). Ces méthodes retournent une chaine parsée comprenant le slug de l'action ou de la notice, ainsi que les données associées.
Oui, il y a beaucoup de notifications et mon but n'est pas d'être en temps réel, mais au chargement de la page, je veux afficher par exemple un icône avec le nombre de nouvelles notifications et au clic, une liste de 10 notifications récentes, par forcément non lues.
Pour le moment, je pensais faire du implémenter en jQuery, une mise à jour au "mouseover", avec un peu d'AJAX. Sachant que la classe History est RESTful via authentification, ca peut être pas mal. C'est simple pourtant : /api/{hash}/history/notice/{slug}/{time} en POST, mais je trouve ça limite de l'amateurisme averti que de se la couler douce en mode jquery 'mouseover'.