POO et DB - 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 et DB (/showthread.php?tid=4598) |
RE: POO et DB - Cartman34 - 29-04-2010 Ca marche en C++ et en JAVA mais pas en PHP, PHP n'assure pas à ce niveau m'enfin on doit faire avec, vivement PHP6 et ses nouveautés. Je suis pas trop pour l'exemple de christouphe car il utilise self:: et ça n'a pas vraiment ça place ici. $this-> serait beaucoup plus adapté. RE: POO et DB - christouphe - 30-04-2010 (29-04-2010, 11:49 PM)IGstaff a écrit : Ca marche en C++ et en JAVA mais pas en PHP, PHP n'assure pas à ce niveau m'enfin on doit faire avec, vivement PHP6 et ses nouveautés. Dans un contexte statique tu ne peux pas utiliser $this, 'fin je vais essayer pour voir tiens. Mais bon tous les singletons sont fait de cette manière, j'ai pas cherché plus loin :p RE: POO et DB - NicoMSEvent - 30-04-2010 une fonction statique peut être déclenché, même si aucun objet n'est instancié $this pointe vers l'objet courant self:: permet d'accéder à une variable statique (qui est commune a tous les objets instanciés, et qui existe avant le premier objet) En suivant ces trois postulats, tu devrais pouvoir trouver la réponse a ton problème RE: POO et DB - christouphe - 30-04-2010 (30-04-2010, 08:34 AM)NicoMSEvent a écrit : une fonction statique peut être déclenché, même si aucun objet n'est instancié (1) En effet, je me sert de (1) pour mes factories, et je vois bien le (2), par contre le (3) personne me l'avais expliqué, ça veut dire qu'un script peut se planter si quelqu'un appele l'instance AVANT que j'ai créé la connexion, pas top ça... :'( Merci pour ces éclairages RE: POO et DB - NicoMSEvent - 30-04-2010 un petit test (je ne l'ai pas essayé, donc il se peut qu'il y ai des erreurs)
exemple d'appel
page HTML a écrit :appel n°1 : connexion a la DB RE: POO et DB - Cartman34 - 30-04-2010 Hormis l'exception getInstance() (et même), en général on instancie une classe... RE: POO et DB - christouphe - 30-04-2010 C'est comme ça que je fais, dans mes classe, je ne sais pas si la connexion a été créée avant, donc pour éviter d'en avoir une qui bouffe l'autre (je suis en transactionnel), je récupère l'instance active. Mais comme tu les dis, elle peut être instanciée par tout le monde du moment qu'on connait son existence, et c'est un de mes problèmes sur les factories. RE: POO et DB - Anthor - 03-05-2010 @NicoMSEvent : tu as oublié de mettre en private la fonction __clone() RE: POO et DB - Kihmé - 03-05-2010 avec vos aides j'ai ma connexion qui fonctionne et j'ai terminé mon mapping, je limite au maximum les interactions avec la base de données mais la volatilité des objets en php n'aide pas. Du coup j'ai sérialisé l'objet user en session et quand j'ai besoin je sérialise un objet particulier et je le passe dans l'url... J'ai opté pour une classe = une table et chacune de mes classes a accès à ma classe de connexion. Dans le futur je pense m'essayer à une classe dont toutes les autres seront filles possédant des méthodes génériques pour les intérogations à la base de données, du style function selectInDatabase(tableau des champs à sélectionner, tableau des tables, tableau des conditions). RE: POO et DB - NicoMSEvent - 03-05-2010 @Anthor : oui, en effet. Je n'ai pas encore utilisé le clonage, merci de m'avoir ouvert cette piste (je suis passé de php4 au 5 sans me poser de question :p ) Un petit lien qui m'a appris certaines choses intéressante, je pense qu'il est bon de le partager : http://www.apprendre-php.com/tutoriels/tutoriel-74-methodes-magiques-clone.html @Kihmé : j'ai le même problème que toi pour la volatilité des objets, je vais voir si il est possible de mettre en cache certains objets, et les partager entre différents utilisateurs (en les sérialisant via un fichier texte?) |