Bonjour,
Comment réutiliser une connexion SQL dans une classe. Il y a certes les variables globales![]()
mais je me refuse à cette idée !
Donc, j'initialise ma connexion SQL puis je transmet l'instance au constructeur de la classe.
Je vous donne un tout petit bout de code, pour comprendre.
Un ami me dit que cette methode donne un code peu lisible et que ma classe n'est pas
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 class MaClasse { private $sqlLink; public function __construct($dbLink) { $this->sqlLink=$dbLink; } public function show() { $sqlData=$this->sqlLink->query("SELECT col FROM toto WHERE 1"); } ... } // Connexion au serveur de la base de données et selection de la base $sqlLink = new mysqli(SQL_HOST,SQL_USER,SQL_PASS,SQL_BASE); if(!$sqlLink) die("Impossible de se connecter à la base de données !!!"); // Initialisation des classes $myvar=new MaClasse($sqlLink);
indépendante !
Lui me conseille d'utiliser les singletons ou d'initialiser la connexion SQL dans le constructeur, comme ceci :
Cela sucite plusieurs questions chez moi.
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 class MaClasse { private $sqlLink; public function __construct($dbLink) { $sqlLink = new mysqli(SQL_HOST,SQL_USER,SQL_PASS,SQL_BASE); if(!$sqlLink) die("Impossible de se connecter à la base de données !!!"); } public function show() { $sqlData=$this->sqlLink->query("SELECT col FROM toto WHERE 1"); } ... } // Initialisation des classes $myvar=new MaClasse();
1. Qu'est ce que les signeton ?
Bien que je sois en phase de recherche la dessus, je suis preneur de vos connaissances
2. Pourquoi mon code est-il peu lisible (s'il l'est) ?
3. Classe indépendante ?
Un quoi une classe doit elle être indépendante ? c'est une recommandation de PHP ? un code de "bonne pratiques" ?
4. Une connexion SQL par classe ... est ce bien raisonnable ?
Donc si mon script comporte 4 classes et que chacune d'elle utilise une connexion SQL, cela va signifier (pour moi) que chaque fois que le script est lancé, il y aura 4 connexions ouvertes sur le serveur SQL![]()
... mon ami me dit que non !
Pourquoi ?
N'ayant pas la science (de PHP) infuse, je suis prêt a me remettre en question dans le but de produire un "meilleur" code. Mais je préfère me baser sur plusieurs avis qu'un seul !
Merci pour votre avis, conseils et autre![]()







Répondre avec citation



Partager