JeuWeb - Crée ton jeu par navigateur
POO ma premiere classe singleton - 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 ma premiere classe singleton (/showthread.php?tid=1743)

Pages : 1 2


POO ma premiere classe singleton - php_addict - 18-03-2011




RE: POO ma premiere classe singleton - niahoo - 18-03-2011

Ben je trouve pas très judicieux de coder en dur dans la classe les paramètres de connexion ... Tu devras modifier ta classe à chaque fois que tu voudras t'en servir pour un autre truc.

Ensuite perso je trouve que les singletons c'est « mou » et c'est relou. J'instancie un PDO et je le balance en paramètres aux fonctions qui en ont besoin, ou aux classes qui se le stockent dans un coin. et je me le garde dans ma classe de config. Ça m'empêche pas de contrôler l'instanciation, mais de toute façon, en php ton PDO crève à la fin du script. On est pas dans une architecture ou tu peux voir pousser des clones au bout de 5 ou 6 heures d'uptime.

Ah et en PHP 5 le constructeur s'appelle __construct, et non pas comme la classe. (bien que comme tu as pu le constater, ils ont assuré la compatibilité).


RE: POO ma premiere classe singleton - php_addict - 18-03-2011

bon...decidement je ne comprendrait jamais rien à la poo...

aurait tu des exemple "bien codés" de singleton ou factory por une classe de connexion à la base de donnée ? car j'ai lu je sais pas combien de tuto, mais meme si je n'y connais rien il me semble que même en POO on peut faire du code degeu...


RE: POO ma premiere classe singleton - niahoo - 18-03-2011

pas moi, j'aime pas la POO et j'aime encore moins les singleton.


RE: POO ma premiere classe singleton - Argorate - 18-03-2011

Rien de difficile a comprendre sur le point de vu de la conception d'un singleton, il s'agit de créer une class qui ne permet qu'une seul instance... Qu'es ce que tu comprends pas la dedans php_addict?
Ensuite le fait de passer en paramètre les variable de conexion que tu as mis en dur dans ta classe, c'est juste rendre ta classe plus générique et réutilisable.


RE: POO ma premiere classe singleton - php_addict - 18-03-2011

bah deja le mot instance c'est du charabiat, mais je pense avoir compris le principe

par contre avec mon singleton qui semble fonctionner , je voudrais balancer mon objet 'connexion' dans une classe qui ressemblerati à ceci: http://www.spiration.co.uk/post/1333/PHP...%20objects et j'avous que là je ne comprends pas comment faire. dans le script du lien que je viens de fournir il se connecte à la bdd vis la public function open( $path, $name ) ce qui est inutile pour moi car j'ai deja un objet de connexion...je ne sais pas comment adapter ce script avec mon singleton...

je sais pas si c'est clair...


RE: POO ma premiere classe singleton - niahoo - 18-03-2011

Une instance c'est un objet tout simplement.

Objet =/= classe, ou classe est le modèle et l'objet une instance de ce modèle.


class Session {
public $db;
// public $maxlifetime = get_cfg_var("session.gc_maxlifetime");
public $maxlifetime = 1800; /* 30 mins */
public $expiry;

public function __construct($PDO) {
$this->db = $PDO;
}
public function __destruct() {
session_write_close();
}

public function open( $path, $name ) {
return true; // ici faire des vérif ?
}

[...]
}



RE: POO ma premiere classe singleton - php_addict - 19-03-2011

salut, merci niahoo

quand j'ai vu ton code je me suis dis: je suis vraiment une quiche en POO. pour le moment je ne vais mettre en OO que la gestion de connexion à la bdd et le gestion des systèmes de sessions, pour le reste je fais un truc un peu crade: je passe mon objet 'connexion à la bdd' à mes fonctions procédurales...c'est pas très joli mais je ne peut pas faire autrement...

bon week end


RE: POO ma premiere classe singleton - Sephi-Chan - 19-03-2011

Pourquoi ne pas récupérer ton instance de connexion via le Singleton, plutôt que de passer ta connexion à chaque fonction ?
Faire de l'OO pour faire de l'OO n'est absolument pas pertinent. Il faut y avoir un intérêt. Smile


Sephi-Chan


RE: POO ma premiere classe singleton - niahoo - 19-03-2011

C'est à moi que tu demandes ? *

Parce que coder en dur dans la classe la récupération d'une instance de fait à partir d'une classe particulière. alors qu'en paramètre je peux passer ce que je veux tant que l'objet respecte une certaine interface.

mais généralement je le passe dans le constructeur lors de l'initialisation et je me le garde dans un coin.