Skip to content

Repenser l'application en POO

Objectifs pédagogiques

  • Refactorer une application fonctionnelle en une structure orientée objet.
  • Identifier les responsabilités de chaque composant.
  • Organiser le code selon le modèle MVC (Modèle / Vue / Contrôleur).
  • Préparer une architecture facilement extensible (services, repository, etc.).

Pourquoi passer en POO ?

L'approche procédurale convient pour débuter, mais elle atteint rapidement ses limites en termes de lisibilité, de modularité et de réutilisabilité. Passer en POO permet :

  • De séparer les responsabilités.
  • De faciliter les tests unitaires.
  • De réutiliser et maintenir le code plus facilement.
  • D’introduire des notions avancées comme les services, les interfaces ou l’injection de dépendances.

Consignes

L’objectif de cette étape est de reprendre le fonctionnement existant de la To-Do List et de réécrire l’application en suivant une approche orientée objet.

Contraintes techniques

  • Utiliser PHP orienté objet (classes, méthodes, encapsulation…).
  • Utiliser PDO pour toutes les interactions avec la base de données.
  • Structurer le projet de manière modulaire (répertoire models/, repositories/, views/, etc.).

Fonctionnalités à mettre en œuvre

  • Afficher la liste des tâches.
  • Ajouter une tâche.
  • Supprimer une tâche.
  • Changer l’état d’une tâche (faite / à faire).
  • Modifier une tâche (édition du titre, de la catégorie, etc.).

Recommandations

  • Prévoir une classe Task représentant une tâche.
  • Prévoir une classe TaskRepository pour accéder aux données (lecture, ajout, suppression…).
  • Organiser l'application pour isoler la logique métier, les vues et les traitements.
  • Préparer les routes principales : index.php, add.php, edit.php, delete.php, etc.

Livrables attendus

  • Une structure de projet propre et lisible.
  • Un jeu de classes bien nommé, cohérent, commenté si besoin.
  • Une base de données alimentée et fonctionnelle.
  • Un système complet d’édition de tâche, au même titre que l’ajout ou la suppression.

Pour aller plus loin (facultatif)

  • Gérer les erreurs PDO de manière centralisée.
  • Ajouter un champ updated_at mis à jour automatiquement à chaque modification.
  • Prévoir un système de tri (par date, par état, etc.).