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

02. L’Abstraction avec la classe Model

L’abstraction est un concept de la POO qui permet de définir une classe qui sert de “plan” mais qui ne peut pas être instanciée elle-même.

La Classe Model

Tous nos modèles (Article, User, Comment) héritent de Model.

abstract class Model {
    protected PDO $pdo;

    abstract protected function getTable(): string;

    // ...
}

Pourquoi abstract ?

  1. Sécurité : On ne veut pas que quelqu’un puisse faire $m = new Model();. Un “Modèle” générique n’a pas de sens en soi.
  2. Contrat interne : En déclarant abstract protected function getTable(), on oblige chaque classe enfant à définir le nom de sa table. Si Article oublie de le faire, PHP générera une erreur fatale dès la compilation.

Centralisation du delete()

Grâce à cette structure, nous avons pu déplacer la logique de suppression dans la classe mère :

public function delete(): bool {
    $stmt = $this->pdo->prepare("DELETE FROM {$this->getTable()} WHERE id = :id");
    return $stmt->execute(['id' => $this->id]);
}

Désormais, si vous avez 20 modèles, vous n’écrivez la fonction delete qu’une seule fois !

Prêt à passer à la suite ?

Vous avez terminé cette leçon sur 02. L'Abstraction avec la classe `Model`. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.