Chapitre 26 : POO avancée
Maîtrisez les concepts avancés de la Programmation Orientée Objet avec PHP
1. Héritage
L'héritage permet à une classe fille d'hériter des propriétés et méthodes d'une classe parent :
class Animal {
public function parler() {
return "Je suis un animal";
}
}
class Chien extends Animal {
public function parler() {
return "Wouf !";
}
}
?>
2. Visibilité : public, protected, private
Les niveaux de visibilité contrôlent l'accès aux propriétés et méthodes :
public: accessible partoutprotected: accessible dans la classe et les classes héritéesprivate: accessible uniquement dans la classe
class Exemple {
public $a;
protected $b;
private $c;
}
?>
3. Méthodes magiques
Les méthodes spéciales comme __construct(), __destruct(), __get(), __set(), etc., permettent de contrôler le comportement d'un objet :
class Utilisateur {
private $nom;
public function __construct($nom) {
$this->nom = $nom;
}
public function __get($prop) {
return $this->$prop;
}
}
?>
4. Classes abstraites
Une classe abstraite ne peut pas être instanciée directement. Elle sert de modèle :
abstract class Vehicule {
abstract public function rouler();
}
class Voiture extends Vehicule {
public function rouler() {
echo "La voiture roule";
}
}
?>
5. Interfaces
Une interface définit un contrat que les classes doivent respecter :
interface Affichable {
public function afficher();
}
class Article implements Affichable {
public function afficher() {
echo "Affichage de l'article";
}
}
?>
6. Traits
Les traits permettent de réutiliser du code horizontalement entre plusieurs classes :
trait Logger {
public function log($msg) {
echo "[LOG] $msg";
}
}
class Service {
use Logger;
}
?>
7. Exercice pratique : Créez une mini hiérarchie d'objets
🎯 Objectif : Mettre en pratique les concepts avancés de POO : héritage, visibilité, classe abstraite, interface, trait.
Consignes :
- Créez une classe abstraite
Employeavec une méthode abstraitetravailler(). - Implémentez deux classes concrètes :
DeveloppeuretManagerqui héritent deEmploye. - Créez une interface
Identifiableavec une méthodegetId(). - Faites en sorte que vos classes l'implémentent.
- Ajoutez un trait
Horodatagecontenant une méthodelogAction(). - Utilisez ce trait dans les deux classes enfants.
✅ Affichez le résultat dans une page test_poo.php.
8. Résumé
- ✅ Comprendre l'héritage, la visibilité, et les méthodes magiques
- ✅ Savoir structurer une hiérarchie de classes avec abstraction et interfaces
- ✅ Réutiliser du code avec les traits
La POO avancée est une étape essentielle pour construire des applications PHP maintenables et modulaires.