JeuWeb - Crée ton jeu par navigateur
[PHP] Singleton PDO - 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 : [PHP] Singleton PDO (/showthread.php?tid=5755)

Pages : 1 2 3 4


[PHP] Singleton PDO - php_addict - 18-10-2011

bonjour

vous allez me dire "enfin !!" mais je me lance dans la POO en php et la premiere chose sur laquelle je me pense est la connexion à la base de donnée

j'aurais besoin de vos avis sur cette classe singleton:

http://www.throrinstudio.com/php/singleton-pour-pdo/

est ce la bonne manière de procéder?

je comprends très bien comment créer l'objet de connexion pdo mais ce que j'ai du mal à saisir c'est comment passer cet objet à d'autres classes POO . j'ai vu des tas d'exemple et celui là me parle le plus mais est ce correct?

bonne fin de journée

++


RE: singleton pdo php - niahoo - 18-10-2011

bof bof ..

t'as plus vite fait d'instancier un PDO normalement et de filer l'instance en tant que paramètre du constructeur des autres objets qui pourraient en avoir besoin. là sa classe ne sert à rien, tout est prédéfini à l'intérieur, on ne peut pas paramétrer le PDO sans modifier le code.

À ce compte là il aurait pu faire une simple fonction avec une statique dedans, ça aurait été plus élégant pour un simple singleton.


RE: singleton pdo php - Annx - 18-10-2011

Si je ne me trompe pas Smile

Code :
class Circuit
{
    private $con; //variable de connexion
 
    public function __construct()
    {
        $db = connexion::getInstance();
        $this->con = $db->getDbh();
    }

    public getCircuit($id)
    {
        $query = $this->con->preapre("requete");
        $query->execute();
    }
}

Sinon comme dit niahoo, la première fois que j'ai utilisé PDO, j'ai fais un fichier banal de connexion :

Code :
/*
     * Paramètre de connexion à la base de données
     */
    $parametre_hote = 'localhost';        // le chemin vers le serveur
    $parametre_port = '3306';            // port du serveur
    $parametre_nom_bd = '';        // le nom de votre base de données
    $parametre_utilisateur = '';    // nom d'utilisateur pour se connecter
    $parametre_mot_passe = '';    // mot de passe de l'utilisateur pour se connecter

    /*
     * On tente une connexion au serveur mysql
     * Sinon on affiche une erreur
     */
    try
    {
        $connexion = new PDO('mysql:host='.$parametre_hote.';dbname='.$parametre_nom_bd, $parametre_utilisateur, $parametre_mot_passe);
    }
    catch(Exception $e)
    {
        echo 'Erreur : '.$e->getMessage().'<br />';
        echo 'N° : '.$e->getCode();
    }

Et ensuite dans une classe :

Code :
class forum
{
    protected $_connexion;

    public function __construct()
    {
        global $connexion;

        $this->_connexion = $connexion;
    }

    public function getMessage($id)
    {
        $this->_connexion->query("requete");
    }
}



RE: singleton pdo php - niahoo - 18-10-2011

les global c'est moche :p

Code :
class forum
{
    protected $_connexion;

    public function __construct($connexion)
    {
        $this->_connexion = $connexion;
    }

    public function getMessage($id)
    {
        $this->_connexion->query("requete");
    }
}



RE: singleton pdo php - Annx - 18-10-2011

héhé pas faux ! Je débutais le POO à l'époque Tongue


RE: singleton pdo php - php_addict - 18-10-2011

merci pour vos conseil mais débutant en POO et de voir des morceaux de code incomplet me perturbe plus qu'autre chose en réalité...

puis je oser vous demander un exemple de class singleton ainsi qu'un court exemple de son utilisation svp ?

PS: je suis encore un gros noob en poo...


RE: singleton pdo php - Annx - 18-10-2011

Pour l'exemple avec singleton c'est dans mon premier message, premier code donné. J'ai repris leur bout de code sur le site avec la classe "Circuit", j'ai juste rajouter la fonction getCircuit() et dedans comment utiliser l'accès à la base de données par rapport au lien que tu nous a transmis.


RE: singleton pdo php - php_addict - 18-10-2011

ah ok merci...décidement je suis vraiment nul en poo...

merci à vous 2


RE: singleton pdo php - niahoo - 18-10-2011

montre nous un peu ce que tu vas modéliser. En général je me passe bien des singleton, parfois c'est utile, parfois même c'est logique qu'un objet gère l'accès à la base de données.


RE: singleton pdo php - php_addict - 18-10-2011

je ne maitrise pas le sens du mot "modéliser" qu'entends tu par là ?