Bonjour,
Je me suis intéressé que très récemment à la PDO et je me retrouve devant une interrogation qui, malgré mes recherches, m'apparait encore assez obscure.

J'utilise par exemple une page qui va contenir ceci (en gros) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
 
class SymptomeDAO 
	{
 
    /**
     * Retourne la liste des symptomes
     * @return
     */
    function getListeSymptomes() {     
			try
			{
			$bdd = new PDO('mysql:host=localhost;dbname=xxx', 'root', 'xxx');
			$bdd->exec('SET NAMES utf8');
			}
			catch (Exception $e)
			{
        	die('Erreur : ' . $e->getMessage());
			}
 
            $q = ...requete puis suite de la méthode;
 
 
    /**
     * Retourne un symptome à partir de son code
     * @param code
     * @return
     */
 public function getSymptomeParCode($code) {        
            try
			{
			$bdd = new PDO('mysql:host=localhost;dbname=xxx', 'root', 'xxx');
			$bdd->exec('SET NAMES utf8');
			}
			catch (Exception $e)
			{
        	die('Erreur : ' . $e->getMessage());
			}
 
			$q = requete puis suite méthode;
 
 
}
?>
J'ai 2 questions dans mon exemple : la première est de savoir si la déclaration de l'attribut avant la méthode est obligatoire/vital/facultatif... J'ai lu un peu tout et n'importe quoi et surtout, des choses qui se contredisent.
Alors plutôt en :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
public function getSymptomeParCode($code) {
ou simplement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
function getSymptomeParCode($code) {
suffit.
Merci d'éclairer ma lanterne.

Et mon gros point noir vient dans l'accès à la DB en elle-même. Je trouve "très moche" de déclarer, pour chaque méthode de la class, les paramètres de connexion.
N'existe-t-il donc pas, un genre de "super variable" qui pourrait contenir ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
try
            {
            $bdd = new PDO('mysql:host=localhost;dbname=name_DB', 'root', 'password');
            $bdd->exec('SET NAMES utf8');
            }
            catch (Exception $e)
            {
            die('Erreur : ' . $e->getMessage());
            }
et que je rappellerais à chaque fois. Ce serait beaucoup plus propre et permettrait de ne pas avoir "x" modifications à effectuer en cas de changement des paramètres de la DB.

Alors excusez moi par avance si ces questions vous semblent un peu idiotes mais en ce moment, elles retardent un peu l'avancée de mon projet car je n'ose trop poursuivre en restant dans le noir.

Merci de votre aide donc