Atelier Professionnel PHP 8 MySQL MVC DAO · PDO SCRUM Sécurité PHPUnit

Site Gallo-Romain de Fâ

Conception et développement d'une application web PHP 8 en architecture MVC avec les patterns PDO et DAO, destinée à fluidifier la gestion des entrées et des ateliers du site archéologique gallo-romain de Fâ — incluant une analyse de risques sécurité, des tests unitaires et une gestion de projet agile SCRUM.

Outils & Technologies

PHP 8 — MVC, PDO, DAO
MySQL / MariaDB
Pattern MVC + DAO
Analyse de risques & sécurité
PHPUnit — tests unitaires & intégration
SCRUM — Product Backlog, sprints
GIT — branches & résolution de conflits
HTML / CSS — vues
VS Code

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

Schéma d'architecture MVC
Schéma architecture MVC
Séparation Modèle / Vue / Contrôleur — patterns PDO & DAO pour l'accès aux données
Configuration de la base de données
Configuration base de données
Connexion PDO centralisée — fichier de configuration de la base de données

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.

Base DAO & modèles des entités

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

Interfaces de l'application
Code des vues PHP

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.

Injection SQL

Contre-mesure : requêtes PDO préparées avec paramètres liés — aucune concaténation directe dans les requêtes.

XSS (Cross-Site Scripting)

Contre-mesure : échappement systématique des sorties avec htmlspecialchars() avant affichage dans les vues.

Accès non autorisé

Contre-mesure : contrôle d'accès côté serveur, validation des entrées utilisateur et séparation des rôles.

Exposition des données

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.

Méthodologie & principes
Méthode Agile SCRUM
Cycle de la méthode Agile SCRUM
Étoile SCRUM — valeurs et piliers
Les 5 valeurs SCRUM
  • 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.

Pyramide des tests
Pyramide des tests
Pyramide des tests — de la base unitaire aux tests d'intégration et end-to-end
  • 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

MVC
Architecture robuste avec patterns PDO & DAO
SCRUM
Gestion agile avec Product Backlog priorisé
GIT
Versioning professionnel — branches & merges

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.

Compétences BTS SIO validées

B2.1 Concevoir et développer une solution applicative
B2.2 Assurer la maintenance corrective ou évolutive
B2.3 Rédiger la documentation technique
B1.4 Travailler en mode projet
B2.4 Concevoir et réaliser une base de données
B3.2 Participer à la sécurisation d'un système informatique
B1.1 Gérer le patrimoine informatique
 
Premier atelier
Voir les compétences
Atelier suivant
Journée d'intégration