Cours : Programmation Orientée Objet (POO) en PHP
Introduction à la POO
La Programmation Orientée Objet (POO) est un paradigme de programmation qui repose sur le concept
d'objets. Ces objets sont des instances de classes, qui définissent des propriétés (attributs) et des
méthodes (comportements). La POO permet de structurer le code de manière modulaire, réutilisable et
maintenable.
Analyse de la classe Employe
1. Déclaration de la classe
<?php
class Employe
· Une classe est une structure qui regroupe des propriétés (variables) et des méthodes (fonctions).
· Ici, la classe Employe représente un employé avec des attributs comme le nom, le prénom et
l'âge.
2. Propriétés de la classe
<?php
public $nom;
public $prenom;
private $age;
· Propriétés publiques (public) :
· Les propriétés $nom et $prenom sont accessibles directement depuis l'extérieur de la classe.
· Exemple : $employe->nom = "Owen";
· Propriété privée (private) :
· La propriété $age est accessible uniquement depuis l'intérieur de la classe.
· Cela garantit un contrôle strict sur sa modification et sa lecture.
3. Constructeur
<?php
public function __construct($nom, $prenom, $age)
$this->nom = $nom;
$this->prenom = $prenom;
$this->age = $age;
· Le constructeur est une méthode spéciale appelée automatiquement lors de la création d'un
objet.
· Il initialise les propriétés de l'objet avec les valeurs passées en paramètres.
· Exemple d'utilisation :
· <?php
· $employe = new Employe("Owen", "Eva", 30);
4. Méthode setAge
<?php
public function setAge($age)
if ((is_int($age)) >= 18 && $age < 50) {
$this->age = $age;
} else {
throw new Exception('L\'âge d\'un employé doit être un entier compris entre 18 e
t 50');
· Cette méthode permet de modifier la propriété privée $age.
· Validation :
· Vérifie que l'âge est un entier compris entre 18 et 50.
· Si la validation échoue, une exception est levée.
· Encapsulation :
· L'utilisation de setAge garantit que l'âge est toujours valide.
5. Méthode getAge
<?php
public function getAge()
return $this->age;
· Cette méthode permet de lire la valeur de la propriété privée $age.
· Elle respecte le principe d'encapsulation en contrôlant l'accès à la propriété.
6. Méthode presentation
<?php
public function presentation()
echo ('NOM : ' . $this->nom . '</br>
PRENOM : ' . $this->prenom . '</br>
AGE : ' . $this->age . ' ans');
· Cette méthode affiche les informations de l'employé sous une forme lisible.
· Exemple de sortie :
· NOM : Owen
· PRENOM : Eva
· AGE : 30 ans
Exemple d'utilisation de la classe Employe
Voici un exemple complet montrant comment utiliser la classe Employe :
<?php
// Inclusion de la classe Employe
require_once '[Link]';
// Création d'un objet Employe
$employe = new Employe("Owen", "Eva", 30);
// Modification de l'âge
try {
$employe->setAge(35); // Âge valide
} catch (Exception $e) {
echo 'Erreur : ' . $e->getMessage();
// Affichage des informations de l'employé
$employe->presentation();
Concepts clés illustrés dans ce code
1. Encapsulation
· Les données sensibles (comme $age) sont protégées grâce à des propriétés privées.
· L'accès et la modification de ces données passent par des méthodes publiques (getAge, setAge).
2. Constructeur
· Le constructeur permet d'initialiser un objet avec des valeurs spécifiques dès sa création.
3. Exceptions
· La méthode setAge utilise une exception pour signaler une erreur si l'âge est invalide.
4. Réutilisabilité
· La classe Employe peut être réutilisée dans différents projets ou contextes.
Avantages de la POO
1. Modularité : Le code est organisé en classes, ce qui facilite sa compréhension et sa
maintenance.
2. Réutilisabilité : Les classes peuvent être réutilisées dans d'autres projets.
3. Encapsulation : Les données sensibles sont protégées et accessibles uniquement via des
méthodes spécifiques.
4. Extensibilité : Les classes peuvent être étendues pour ajouter de nouvelles fonctionnalités.
Conclusion
La classe Employe est un exemple simple mais puissant de l'utilisation de la POO en PHP. Elle illustre les
concepts fondamentaux comme l'encapsulation, les constructeurs et les exceptions. En maîtrisant ces
concepts, vous pouvez écrire du code plus structuré, maintenable et réutilisable.