Bonjour
Lors de la création d'un objet, je cherche à m'assurer qu'il n'ait pas déjà été créé.
Par exemple :
J'ai une classe Joueur. Lorsque je créé un joueur, je passe son id en paramètre de mon constructeur et je fais la requête sql qui correspond pour initialiser toutes ses propriétés.
Maintenant il peut arriver qu'un même joueur soit créer deux fois lors d'un chargement de page (on s'en ai servi pour une action quelconque et il apparait ensuite dans un classement plus bas dans la page, par exemple), et donc on va faire deux fois les requêtes et on va avoir deux objets distincts, alors qu'une seule fois suffirait et que c'est censé s'agir du même objet.
J'ai donc pensé faire un tableau associatif, statique dans mes classes.
Par exemple
static public $liste_joueur = array()
Quand on créé un joueur, s'il n'est pas dans la liste, on ajoute l'objet avec un Joueur::$liste_joueur[$son_id] = $this;
Par contre, je ne vois pas comment lui dire que si Joueur::$liste_joueur[$son_id] existe déjà, alors l'objet en cours de création doit justement être Joueur::$liste_joueur[$son_id] ...
Est ce que la méthode __construct() peut renvoyer un objet de mon choix?
Donc
- Est ce que mon problème est clair?
- Est ce la bonne approche ou y a t'il un système plus simple pour s'assurer qu'on ai pas d'objet en doublon?
Merci d'avance.
Partager