JeuWeb - Crée ton jeu par navigateur
[Résolu] Problème d'instanciation... - 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 : [Résolu] Problème d'instanciation... (/showthread.php?tid=796)



[Résolu] Problème d'instanciation... - Seren - 13-02-2007

Salut,

C'est un problème que j'ai pas encore rencontré mais qui me tracasse.

Je suis en train de développer les classes basiques :
- Personnage
- Objet
- Bâtiment
- etc.

Pour l'instant tous mes constructeurs sont plus ou moins sur le même modèle. Par exemple :
Code PHP :
<?php 
class clsPerso{
// Liste attributs

// Liste Méthode
public function __construct(&$db, $perso_id)
{
// Connexion à la base de donnée
$db->execRequete("SELECT * from". TABLEPERSO."WHERE perso.pid = ". $perso_pid."'");
// Initialisation de l'objet avec le résultat
}
}

Le problème c'est que j'entrevois des cas où je devrais initialiser plusieurs objet à la fois, par exemple pour afficher un inventaire.

Si je fais une requête à chaque fois pour récupérer un seul objet, ça risque de ramer pas mal.

Solution envisagée : créer des classes dédiées, genre la classe Inventaire pour une requete sur plusieurs objets.


RE: Problème d'instanciation... - pascal - 13-02-2007

le truc c'est de faire :
_ une classe pour récupérer un élément
_ une autre classe pour récupérer un résultat de plusieurs lignes ( SQL ) et initialiser plusieurs éléments via une boucle

A+

Pascal


RE: Problème d'instanciation... - gtsoul - 13-02-2007

Tu crées 1 constructeur et 2 méthodes de chargement
1 qui le fera comme un constructeur par recopie avec l'entrée des attributs en paramètres, l'autre qui prendra un id et qui ira chercher dans la bdd.
Ainsi lorsque tu veux construire un inventaire, tu lances une requete générale puis tu instancies tes objets dans une boucle ; et lorsque tu as besoin d'une seule instance, tu utilises la bdd.
C'est pas très mvc, mais j'ai réduit par 5 mon nombre de requête, et gagné 25% de temps de génération (10ms sur 35ms)


RE: Problème d'instanciation... - Seren - 13-02-2007

Ok vous dites la même chose, et c'est ce que je comptais faire. ça me va.

Merci.