Tp 5 php classes heritages traits interfaces blogpoo
Thème :
Junior
1 vues ·3/12 leçons02. 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 ?
- 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. - Contrat interne : En déclarant
abstract protected function getTable(), on oblige chaque classe enfant à définir le nom de sa table. SiArticleoublie 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.