Tp 5 php classes heritages traits interfaces blogpoo
Thème :
Junior
3 vues ·5/12 leçons04. 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 ?
- Facilité d’accès : Pas besoin de gérer des dossiers profonds comme
app/Core/. - Cohérence : Les constantes de connexion (
DB_SERVERNAME, etc.) et la classe qui les utilise sont au même endroit. - Rétrocompatibilité : Nous gardons la fonction
getPdo()qui appelle simplementDatabase::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.