Tp 5 php classes heritages traits interfaces blogpoo
Thème :
Junior
3 vues ·5/12 leçons

04. La Classe Database (Simplifiée)

Dans cette architecture simplifiée, nous avons regroupé la configuration et la logique de connexion dans un seul fichier : database/database.php.

Le Pattern Singleton

Nous utilisons une classe Database pour garantir qu’une seule et unique connexion PDO est ouverte pendant toute la durée du script.

class Database {
    private static ?PDO $instance = null;

    public static function getConnection(): PDO {
        if (self::$instance === null) {
            // Initialisation de la connexion PDO
            self::$instance = new PDO($dsn, $user, $pass);
        }
        return self::$instance;
    }
}

Pourquoi une classe dans database.php ?

  1. Facilité d’accès : Pas besoin de gérer des dossiers profonds comme app/Core/.
  2. Cohérence : Les constantes de connexion (DB_SERVERNAME, etc.) et la classe qui les utilise sont au même endroit.
  3. Rétrocompatibilité : Nous gardons la fonction getPdo() qui appelle simplement Database::getConnection(). Cela permet au code plus ancien de continuer à fonctionner.

Utilisation dans les Modèles

Au lieu d’utiliser une variable globale $pdo, nos modèles demandent la connexion à la classe :

// Dans Model.php
$this->pdo = Database::getConnection();

Cela respecte le principe d’encapsulation : l’objet ne dépend plus d’une variable extérieure “magique”, mais d’une classe de service identifiée.

Prêt à passer à la suite ?

Vous avez terminé cette leçon sur 04. La Classe `Database` (Simplifiée). Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.