MyDigitalHorse, programmation orientée objet en PHP
○ Archivé
Évaluation de POO en PHP : modéliser une écurie de compétition (cavaliers, équidés, événements) avec des règles métier contrôlées par exceptions, selon SOLID.
Contexte
MyDigitalHorse est l’épreuve de programmation orientée objet de MyDigitalSchool à l’automne 2022. Le cahier des charges décrit une écurie de compétition : un manager, des cavaliers, des chevaux, poneys et shetlands, et des événements auxquels les inscrire.
À la même période, j’ai mené un autre essai en PHP : une petite interface web, greffée sur une installation WordPress, qui permet de changer de branche Git et de fusionner depuis le navigateur grâce à la bibliothèque git-php.
Challenge
L’évaluation reposait sur les règles métier plus que sur l’affichage. Un cavalier ne peut pas avoir plus de cinq équidés, un cheval ne peut pas faire de PoneyGames, un même équidé ne peut pas être inscrit deux fois à un événement, et chaque événement a une capacité en eau limitée à ne pas dépasser.
Le correcteur devait pouvoir tout vérifier en lançant le script une seule fois, et tous les contrôles devaient passer par des exceptions, selon les principes SOLID.
Approche
J’ai construit une hiérarchie de classes (Human et Animal abstraites, Rider, Manager, Equine et ses catégories, Capability, Event) rangée par namespaces. Les identifiants des équidés sont générés selon le motif imposé, les couleurs sont devenues des classes dédiées et les setters sont privés dès que possible. Un jeu de test commenté, avec les résultats attendus, déroule tous les cas.
Pour l’interface Git, j’ai utilisé git-php pour lister les branches d’un dépôt, afficher la branche courante, basculer de l’une à l’autre et lancer une fusion, avec une liste de chemins de dépôts configurable. Ce second projet est resté au stade d’essai.
(04) — Résultats
Chiffres clés- 70
- commits sur les deux dépôts
- 4
- règles métier contrôlées par exceptions
- 3
- catégories d’équidés
- 2022
- année
