Projet The ArtBox – PHP (factorisation & automatisation)

theartbox oc stephane arrami

Contexte de la mission

Dans le cadre de la formation Développeur PHP (OpenClassrooms), j’ai accompagné des étudiants sur le projet The ArtBox, une galerie d’art en ligne existante à refactorer en PHP.
Objectif pédagogique : apprendre à factoriser du HTML en composants PHP réutilisables, automatiser la génération de pages à partir de données, et poser les bases d’une architecture plus maintenable.

Description du projet

Le site fonctionnait initialement avec des pages HTML dupliquées. Le travail demandé consistait à :

  • Isoler les parties communes (header, footer, navigation) en partials PHP et les inclure via require/include.
  • Centraliser les données des œuvres (tableau/JSON/DB selon variante) puis générer la liste et les pages de détail par boucle PHP.
  • Réduire la dette technique (DRY), clarifier la structure des fichiers et préparer une éventuelle connexion MySQL.
    Mon rôle : cadrage méthodo (arborescence, nommage, plan de refacto), relecture de code, et mise en place d’un cahier de recettes minimal pour vérifier que chaque étape n’introduit pas de régression.

Technologies utilisées

  • PHP 8 (includes, boucles, logique de templates)
  • MySQL (selon option : préparation/connexion, requêtes simples)
  • HTML5 / CSS (structure et styles existants)
  • MAMP / LAMP / WAMP (environnement local)
  • Git (versionnement des étapes de refactorisation)

Étapes guidées

  1. Préparation du travail : audit des pages, repérage des duplications, plan de factorisation.
  2. Factorisation du header & footer : création de partials et intégrations propres.
  3. Création du tableau des œuvres : structure de données unique (array/JSON/DB).
  4. Factorisation de la page d’accueil : génération de la grille via boucle PHP.
  5. Factorisation des pages de détail : page unique qui récupère l’œuvre par id/slug (GET), avec gestion d’erreurs (404 simple).

Compétences travaillées

  • Factorisation de code (DRY) et templates PHP
  • Automatisation de la création de pages (boucles, includes)
  • Structuration des données (array/JSON/DB) et séparation des responsabilités
  • Mise en place d’un environnement local (MAMP) et Git workflow
  • Cahier de recettes : vérifications pas à pas après chaque refactor

Positionnement mentor : j’ai reproduit le projet en parallèle pour anticiper les blocages (routing simple, variables d’environnement, 404, sécurité basique) et outillé les étudiants (checklists, étapes intermédiaires, commits pédagogiques) afin qu’ils mènent eux-mêmes la refactorisation sans solution “clé en main”.

Retour en haut