PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 12-12-2011 16:26:13

Darkangel
Membre
Inscription : 20-11-2009
Messages : 128

Lancement en PDO/ mise en place classe de connection

Je débute en PDO et ai une question de base.

J'ai lu le doc de Maljuna mais ne cerne pas bien le protocole de connexion.
En theorie on débute par

$conn = new PDO($config['db.conn'], $conifg['db.user'],$config['db.pass']);

Toutefois ne souhaitant spécifier cela qu'une fois et seulement une fois j'ai regarder d'autre tuto qui parle de singleton.

Aussi et me basant sur ce constat j'ai préparé une classe et aimerais avoir votre avis sur celle-ci. est elle correcte et optimisée?

De plus au delà de ce premier script, j'aimerai savoir comment mettre en place mon système de gestion d'erreur.
1) Affichage d'une erreur complète si $debug =true sur le site
2) Affichage d'une erreur claire et simple si debug=false sur le site
3) intégration d'une erreur complète et précise dans un fichier de consult_erreur.

Faut il que j"intègre tout cela dans cette même classe?
comment procéder afin que pour chaque query si une erreur soit détectée, mon systeme se mette en place? Je devrai utiliser les try catch a chaque fois?

Merci d 'avance


Class DbConnexion extends PDO{

  private static $instance;
 
 function montreErreur($message)
    {
    echo "<h2>Erreur</h2>";
    echo nl2br(htmlspecialchars($message));
    exit();
    }
 
 
    public static function getInstance()
  {
    if(!isSet(self::$instance))
    {
            try
{
        self::$instance = new PDO('mysql:host=localhost;dbname=platf_gest', 'root', '');
    self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}

catch(PDOException $e)
{
        montreErreur("Désolé, une erreur s'est produite.
          Merci d'essayer plus tard.\n"
.$e->getMessage()
          ."<br />\n N° : ".$e->getCode()
          );
     
}
    }

    return self::$instance;
  }
 
}
 

Hors ligne

#2 12-12-2011 16:44:09

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Lancement en PDO/ mise en place classe de connection

Darkangel a écrit :

J'ai lu le doc de Maljuna mais ne cerne pas bien le protocole de connexion.

Je précise qu'il s'agit d'une traduction jamais finalisée (pas le temps) d'un assez médiocre bouquin : Learning PHP Data Object de Denis Popel.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 12-12-2011 16:49:50

Darkangel
Membre
Inscription : 20-11-2009
Messages : 128

Re : Lancement en PDO/ mise en place classe de connection

je ne remets pas en cause ni le bouquin ni ta traduction loin de la:
je demande juste à savoir si je me lance sur le bonne voie!

Hors ligne

#4 12-12-2011 17:12:14

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Lancement en PDO/ mise en place classe de connection

Il n'y a pas de souci, Darkangel, c'est juste pour les éventuels tiers répondeurs qui ne sauraient pas de quoi tu parles.
D'autre part, en regardant la date des pages HTML de ma traduction, je vois 20/12/2010.
Comme je n'ai pas remis le nez dans cette traduction depuis lors, tout cela s'est un peu évaporé de ma mémoire.
Personnellement je n'ai pas le temps ces jours-ci de t'épauler davantage.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 12-12-2011 21:17:17

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Lancement en PDO/ mise en place classe de connection

Bonsoir,

Cher Darkangel, tu abordes des concepts qui non seulement ne s'improvisent pas mais qu'il faut au préalable maîtriser. Ta démarche est louable et t'honores mais pour faire cela correctement vu ton niveau, 1 mois de formation à raison de 2h par jour ne seraient pas de trop et je suis quasiment certain que tu ne saurais toujours pas à la fin comment t'y prendre, car il faut non seulement maîtriser ces techniques mais en plus établir un cahier des charges précis de ce que tu souhaites faire en finalité, savoir apréhender ton projet dans son ensemble afin de pouvoir utiliser et optimiser les techniques appropriées.
Comme tu as pu le voir rien que pour implémenter ta classe PDO, on t'a déjà montré 3 façons de faire différentes et qui ont un impact non négligeable sur la structure et les performances de ton code. Il y a une infinité de façon de développer même si les bases et les méthodologies sont de plus en plus normalisées.

Concernant plus précisément ta question et vu ce que je viens de te dire, on ne peut même pas te conseiller car on ne sait pas ce que tu souhaites faire et comment tu souhaites le faire. Le meilleur conseil que je puisse te donner, c'est de lire, lire, lire et encore lire de façon à bien apprendre la programmation orientée objet en PHP.

Cordialement,

Jc

Dernière modification par Jc (13-12-2011 00:41:55)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums