Je me suis créé une classe en PHP nommée Database, qui fonctionne bien de manière indépendante. J'entends par là que si je l'appelle dans un fichier x les requêtes s'effectuent correctement.
Code : Tout sélectionner
class Database{
private $db_name = '$';
private $db_user = '$';
private $db_host = '$-$.privatesql;port=$';
private $db_pass = '$';
protected $pdo;
private function getPDO(){
if($this->pdo === null){
$pdo = new PDO('mysql:host='.$this->db_host.';dbname='.$this->db_name.';charset=utf8', $this->db_user, $this->db_pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->pdo = $pdo;
}
return $this->pdo;
}
public function query($statement, $params = null){
$req = $this->prepare($statement);
$req->execute($params);
$datas = $req->fetchAll(PDO::FETCH_OBJ);
return $datas;
}
?>Autrement dit, sur une page xxx.php il peut très bien y avoir 3 ou 4 instanciations différentes et toutes, peuvent potentiellement avoir besoin à un accès à la base de données.
En consultant les forums divers, j'ai vu sur certains sujets, qu'ils instanciaient la classe "database" dans classes. Ma question est alors la suivante, dans la mesure où une classe est "indépendante", instancier des nouvelles connexions à chaque classe, ne poserait pas des problèmes de performance ?
D'un oeil débutant en POO, je trouve cette méthode pas très "propre".
Comment le faire proprement ? Merci d'avance,