J'ai utilisé pour étendre la classe de connexion Db dans chaque classe qui doit se connecter à la base de données. Je pense que c'est la manière la plus courante. Mais, en suivant cette procédure, vous ouvrez et fermez une nouvelle connexion dans chaque instance de classe qui étend la classe de connexion db. Dernièrement, j'ai pensé que je pourrais créer un objet pdo et le passer dans le constructeur de la classe. Ainsi, chaque instance de classe qui a besoin d'accéder à la base de données utilise la même connexion. Cela fonctionne mais je ne suis pas sûr si c'est un moyen efficace de le faire. Aussi, j'ai une fonction appelée closeCon que j'appelle à la fin du script afin de fermer la connexion via null et unset. J'aimerais connaître votre opinion à ce sujet aussi. Merci d'avance:)La classe étend la classe dbConnection VS en passant la variable PDO dbConnection dans le constructeur de la classe
MÉTHODE 1: La nouvelle classe étend la classe dbConnection.
class Db {
public $pdo;
public function __construct($usr, $pwd, $db) {
$this->pdo = new PDO("mysql:host=localhost;dbname=".$db.";charset=utf8", $usr, $pwd);
}
}
class Users extends Db{
public function __construct(){
parent::__construct($usr, $pwd, $db);
}
}
MÉTHODE 2: Connectez-vous à DB en passant la variable PDO dbConnection dans le constructeur de la nouvelle classe.
class Db {
public $pdo;
public function __construct($usr, $pwd, $db) {
$this->pdo = new PDO("mysql:host=localhost;dbname=".$db.";charset=utf8", $usr, $pwd);
}
public function closeCon(){
$this->pdo = null;
unset($this->pdo);
}
}
class Users {
protected $pdo;
public function __construct($con){
$this->pdo = $con;
}
}
$db = new Db($usr, $pwd, $db);
$posts = new Users($db->pdo);
$db->closeCon();
Bon travail pour quelle méthode? –