Outils & Technologies
Contexte
Le site gallo-romain de Fâ, site archéologique et touristique, fait face à une affluence croissante qui engendre des difficultés d'organisation pour le personnel : gestion des entrées, suivi des ateliers proposés aux visiteurs, coordination des créneaux horaires et des réservations.
Dans le cadre du BTS SIO 2e année, cet atelier consistait à proposer une solution numérique pour fluidifier ces processus. L'objectif était de concevoir et développer une application web complète en PHP 8 reposant sur une architecture MVC robuste, les patterns PDO et DAO pour l'accès aux données, et une approche professionnelle incluant sécurité, tests et gestion de projet agile.
Mission & Objectifs
Concevoir et développer une application web PHP 8 en architecture MVC avec les patterns PDO et DAO pour la gestion des entrées, des événements, des horaires et des tarifs du site gallo-romain de Fâ — en intégrant une analyse de risques sécurité, des tests unitaires et d'intégration, et une gestion de projet rigoureuse selon la méthodologie SCRUM.
-
Gestion des événements, horaires et tarifs du site
-
Architecture MVC avec patterns PDO et DAO — accès aux données découplé
-
Analyse de risques sécurité : scénarios de menaces, gravité & vraisemblance, contre-mesures
-
Tests unitaires et d'intégration automatisés avec PHPUnit
-
Gestion de projet SCRUM — Product Backlog, priorisation par valeur métier et ROI
-
Gestion de versions GIT — création de branches et résolution de conflits
Architecture MVC
Modèles — Pattern DAO
Le pattern DAO (Data Access Object) isole la logique d'accès à la base de données dans des classes dédiées.
Chaque entité (événement, horaire, tarif) dispose de son propre DAO héritant d'un BaseDAO commun,
garantissant maintenabilité et testabilité du code.
Contrôleurs
Les contrôleurs font le lien entre les requêtes utilisateur et les données issues des DAO.
Chaque entité dispose de son propre contrôleur : ControleurEvenement pour les événements et
ControleurHoraire pour la gestion des créneaux horaires des ateliers.
Vues & Application
Sécurité applicative
La sécurité a été un axe central du projet. Une analyse des risques formelle a été menée : identification des scénarios de menaces, évaluation de leur gravité et de leur vraisemblance, puis mise en œuvre de contre-mesures techniques adaptées.
Contre-mesure : requêtes PDO préparées avec paramètres liés — aucune concaténation directe dans les requêtes.
Contre-mesure : échappement systématique des sorties avec htmlspecialchars() avant affichage dans les vues.
Contre-mesure : contrôle d'accès côté serveur, validation des entrées utilisateur et séparation des rôles.
Contre-mesure : gestion des erreurs PDO sans exposition de détails techniques, configuration de la base de données hors racine web.
Gestion de projet — SCRUM
Le projet a été conduit selon la méthodologie SCRUM, avec la mise en place d'un Product Backlog listant l'ensemble des fonctionnalités à développer, priorisées selon leur valeur métier et leur retour sur investissement (ROI).
La gestion de versions a été assurée via GIT avec une stratégie de branches : chaque fonctionnalité développée dans sa propre branche, puis intégrée après révision et résolution des conflits de fusion.
-
Product Backlog — fonctionnalités priorisées par valeur métier et ROI
-
Sprints — développement itératif et incrémental des fonctionnalités
-
Branches GIT — une branche par fonctionnalité, fusion contrôlée
-
Résolution de conflits — gestion des merges et synchronisation d'équipe
Tests unitaires & d'intégration
Pour garantir la fiabilité du code, des tests unitaires et d'intégration automatisés ont été réalisés avec PHPUnit. Ces tests couvrent les méthodes des DAO (récupération, insertion, mise à jour) ainsi que les contrôleurs, afin de détecter rapidement toute régression lors des évolutions du code.
-
Tests unitaires — validation isolée des méthodes DAO (PDO, requêtes préparées)
-
Tests d'intégration — vérification du bon fonctionnement de la chaîne Contrôleur → DAO → BDD
-
Exécution automatisée — détection rapide des régressions lors des mises à jour
Résultats & Apprentissages
Ce projet m'a permis de consolider mes compétences en conception logicielle professionnelle, en appliquant une architecture MVC rigoureuse et les patterns DAO/PDO dans un contexte concret. La dimension sécurité m'a sensibilisée à l'identification des risques applicatifs et à la mise en œuvre de contre-mesures adaptées dès la conception.
La méthodologie SCRUM et l'utilisation avancée de GIT (branches, conflits) m'ont donné une expérience de la gestion de projet agile et du travail collaboratif professionnel. Les tests automatisés avec PHPUnit ont renforcé ma rigueur dans la livraison d'un code fiable et maintenable.