Chapitre 27 : Architecture MVC
Structurez vos projets PHP avec l'architecture Modèle-Vue-Contrôleur (MVC)
1. Qu'est-ce que l'architecture MVC ?
MVC est un modèle d'organisation du code qui permet de séparer les responsabilités dans une application :
- Modèle (Model) : Gère les données et la logique métier
- Vue (View) : Gère l'affichage
- Contrôleur (Controller) : Fait le lien entre modèle et vue
2. Structure de dossiers recommandée
Voici comment organiser votre projet en suivant le pattern MVC :
/mon-projet
├── index.php
├── controllers/
│ └── ArticleController.php
├── models/
│ └── Article.php
├── views/
│ └── articleView.php
└── config/
└── database.php
3. Exemple de modèle (Model)
Le modèle gère l'accès aux données et la logique métier :
// models/Article.php
class Article {
public function getAll() {
$pdo = new PDO('mysql:host=localhost;dbname=blog', 'root', '');
return $pdo->query("SELECT * FROM articles")->fetchAll();
}
}
?>
4. Exemple de contrôleur (Controller)
Le contrôleur orchestre le flux entre modèle et vue :
// controllers/ArticleController.php
require_once '../models/Article.php';
class ArticleController {
public function index() {
$articleModel = new Article();
$articles = $articleModel->getAll();
include '../views/articleView.php';
}
}
?>
5. Exemple de vue (View)
La vue se concentre uniquement sur la présentation des données :
<h2>Liste des articles</h2>
<ul>
<?php foreach ($articles as $article): ?>
<li><?= htmlspecialchars($article['titre']) ?></li>
<?php endforeach; ?>
</ul>
6. Point d'entrée : index.php
Le fichier index.php initialise l'application et appelle le contrôleur approprié :
require_once 'controllers/ArticleController.php';
$controller = new ArticleController();
$controller->index();
?>
7. Avantages du MVC
- Séparation claire des responsabilités
- Code plus maintenable et testable
- Facilite le travail en équipe (développeurs / designers)
- Meilleure réutilisabilité des composants
- Évolution plus facile de l'application
8. Exercice pratique : Créez une application MVC de blog
🎯 Objectif : Mettre en œuvre l'architecture MVC pour afficher une liste d'articles depuis une base de données.
Consignes :
- Créez une base de données
blogavec une tablearticles(id, titre, contenu) - Créez un modèle
Articlepour récupérer les articles - Créez un contrôleur
ArticleControllerpour orchestrer l'affichage - Créez une vue
articleView.phppour afficher les articles - Faites pointer votre fichier
index.phpvers le contrôleur
Bonus :
- Affichez un seul article à la fois avec un paramètre d'URL (
?id=2) - Ajoutez un modèle
Commentaireavec affichage des commentaires liés - Créez un système de routage basique
✅ Cet exercice vous préparera à créer des applications PHP bien organisées à grande échelle.
9. Résumé
- ✅ Compréhension de la structure MVC
- ✅ Capacité à organiser son code PHP de manière modulaire
- ✅ Préparation à des projets plus complexes
- ✅ Meilleures pratiques pour le développement d'applications web
L'architecture MVC est une pierre angulaire dans la structuration de vos futures applications PHP.