📘 Chapitre – Encapsulation et bonnes pratiques
1. 🎯 Objectif pédagogique
Comprendre le principe d’encapsulation en POO, savoir utiliser des getters et setters pour protéger l’accès aux données, et appliquer les bonnes pratiques de structuration du code orienté objet.
2. 📚 Concepts abordés
- Notion d’encapsulation (protéger les données)
- Propriétés privées et méthodes d’accès (
get
etset
) - Validation et filtrage dans les setters
-
Respect des bonnes pratiques :
- Nommage clair des classes et méthodes
- Responsabilité unique (SRP – Single Responsibility Principle)
- Commentaires et documentation basique
3. 🧠 Explication théorique
L’encapsulation consiste à rendre les propriétés d’une classe privées et à fournir des méthodes pour les lire ou les modifier de manière contrôlée.
Exemple d’encapsulation :
class Article {
private $titre;
private $contenu;
public function setTitre($titre) {
if (strlen($titre) > 3) {
$this->titre = $titre;
}
}
public function getTitre() {
return $this->titre;
}
}
L’accès direct aux propriétés est ainsi contrôlé :
$article = new Article();
$article->setTitre("Introduction à la POO");
echo $article->getTitre();
4. 🛠 Tutoriel pratique
Résumé du travail : Créer une classe Article
avec des getters et setters validant les données.
Arborescence projet :
projet_poo/
└── ArticleEncapsule.php
Étape 1 : Créer la classe avec propriétés privées
<?php
class Article {
private $titre;
private $contenu;
public function setTitre($titre) {
if (!empty($titre) && strlen($titre) > 3) {
$this->titre = $titre;
} else {
echo "Titre invalide.";
}
}
public function getTitre() {
return $this->titre;
}
public function setContenu($contenu) {
$this->contenu = htmlspecialchars($contenu);
}
public function getContenu() {
return $this->contenu;
}
public function afficher() {
return "Titre : {$this->titre} - Contenu : {$this->contenu}";
}
}
Étape 2 : Tester la classe
<?php
require 'ArticleEncapsule.php';
$article = new Article();
$article->setTitre("POO en PHP");
$article->setContenu("<p>Introduction à la programmation orientée objet.</p>");
echo $article->afficher();
5. 🧾 Résumé et points-clés
- Encapsulation = cacher les données sensibles en utilisant
private
. - Getters/Setters : contrôler la lecture et l’écriture des données.
- Validation : vérifier la cohérence des valeurs avant de les attribuer.
- Les classes bien conçues sont claires, courtes et documentées.