Objectifs de cette leçon
- Comprendre l'architecture MVC
- Connaître les avantages de Laravel
- Découvrir l'écosystème Laravel
Introduction au backend et à Laravel ⚡
C'est quoi le backend ? 🤔
Imagine un restaurant :
| Rôle | Restaurant | Application web |
|---|---|---|
| Client | Toi, assis à table | Le navigateur (frontend) |
| Serveur | Prend la commande | Laravel (backend) |
| Cuisinier | Prépare le plat | Le contrôleur |
| Frigo | Stocke les ingrédients | La base de données |
| Plat | Ce que tu reçois | La réponse JSON |
🧠 Backend = tout ce qui se passe côté serveur, invisible pour l'utilisateur.
Frontend vs Backend
🌐 FRONTEND (React, Next.js) ⚡ BACKEND (Laravel) ┌─────────────────────┐ ┌─────────────────────┐ │ Interface utilisateur │ ──HTTP──▶ │ Traitement des │ │ Ce que tu vois │ ◀──JSON── │ données │ │ Clics, animations │ │ Base de données │ └─────────────────────┘ └─────────────────────┘
| Critère | Frontend | Backend |
|---|---|---|
| Langage | JavaScript, TypeScript | PHP (Laravel) |
| Rôle | Afficher des données | Traiter des données |
| Visible ? | Oui | Non |
| Exécuté sur | Le navigateur | Le serveur |
| Base de données | Jamais en direct | Uniquement ici |
Qu'est-ce que Laravel ?
Laravel est un framework PHP pour créer des applications web et des API.
PHP tout seul : Laravel : ┌──────────────┐ ┌──────────────────────┐ │ Tout à faire │ │ Routes toutes prêtes │ │ à la main │ │ ORM intégré │ │ Sécurité ? │ │ Authentification │ │ Pas de DB │ │ Migrations │ └──────────────┘ │ Validation │ │ Sécurité incluse │ └──────────────────────┘
Pourquoi Laravel plutôt que PHP seul ?
| Fonctionnalité | PHP seul | Laravel |
|---|---|---|
| Routage | À coder manuellement | Déclaré dans routes/api.php |
| Base de données | Requêtes SQL brutes | Eloquent ORM (plus simple) |
| Sécurité | Tout à gérer | Inclut la protection CSRF, XSS |
| Templates | echo "<html>" | Blade (moteur de templates) |
| Commandes | Aucune | Artisan (générateur de code) |
Le cycle d'une requête HTTP
Voici comment Laravel traite une requête HTTP :
Étape par étape :
- 🌐 Navigateur : L'utilisateur tape une URL ou clique sur un lien
- 🛣️ Route : Laravel lit l'URL et cherche la route correspondante
- 🎯 Contrôleur : Le contrôleur exécute la logique (récupérer des données, valider, etc.)
- 🗄️ Eloquent : Eloquent traduit les appels PHP en requêtes SQL
- 📦 JSON : Laravel construit la réponse JSON
- ✅ Frontend : Le navigateur reçoit les données et les affiche
💡 Tout ce cycle prend quelques millisecondes !
Architecture MVC
Laravel suit le pattern MVC (Modèle - Vue - Contrôleur) :
┌─────────────────────────────────────────────────────┐ │ Requête HTTP │ │ │ │ │ ▼ │ │ ┌─────────┐ ┌──────────┐ ┌────────────────┐ │ │ │ Route │───▶│Contrôleur│───▶│ MODÈLE │ │ │ │ │ │ │ │ (Eloquent) │ │ │ └─────────┘ │ Logique │ │ │ │ │ │ │ métier │ │ ▼ │ │ │ └──────────┘ │ Base de │ │ │ │ │ données │ │ │ ▼ └────────────────┘ │ │ ┌─────────┐ │ │ │ VUE │◀─────────────────────────────────────────│ │ │(JSON) │ │ │ └─────────┘ │ │ │ │ │ ▼ │ │ Réponse HTTP │ └─────────────────────────────────────────────────────┘
| Composant | Rôle | Exemple |
|---|---|---|
| Route | Définit quel URL répond à quelle action | /api/users → UserController@index |
| Contrôleur | Contient la logique métier | Récupérer les utilisateurs, valider, etc. |
| Modèle | Représente une table de la base de données | User::all() |
| Vue | Format de la réponse (JSON, HTML) | response()->json(...) |
Exemple concret : API d'utilisateurs
<?php // routes/api.php -- Definition de la route Route::get('/api/utilisateurs', [UserController::class, 'index']); // app/Http/Controllers/UserController.php -- Le controleur class UserController extends Controller { public function index() { // Eloquent traduit ceci en SQL $utilisateurs = User::all(); // Laravel construit le JSON automatiquement return response()->json($utilisateurs); } }
Quand le navigateur appelle GET /api/utilisateurs, la reponse est :
[ { "id": 1, "nom": "Alice", "email": "alice@exemple.com" }, { "id": 2, "nom": "Bob", "email": "bob@exemple.com" } ]
Les points clés à retenir
✅ Le backend = le cerveau de l'application (invisible mais essentiel) ✅ Laravel = un framework PHP qui simplifie la creation d'API ✅ MVC = le pattern organisateur : Route → Contrôleur → Modèle → Vue (JSON) ✅ Une requête HTTP = un aller-retour complet en quelques millisecondes ✅ Laravel gere automatiquement : routage, BDD, securite, validation
Pièges fréquents 🚨
| Piège | Explication |
|---|---|
| ❌ Confondre frontend et backend | Le frontend = ce qu'on voit. Le backend = ce qui traite les données |
| ❌ Oublier que PHP s'execute sur le serveur | PHP n'est PAS comme JavaScript : il ne s'execute pas dans le navigateur |
| ❌ Croire que Laravel est "magique" | Laravel suit des patterns bien précis. Chaque "magie" a une explication technique |
Exercices pour toi 🎯
- Quiz : Relis le tableau Frontend vs Backend. Sans regarder, cite 3 différences.
- Schéma : Dessine le cycle d'une requête HTTP sur une feuille (6 étapes).
- Réflexion : Dans ton restaurant préféré, qui joue le rôle du contrôleur ? de la base de données ?
- PHP simple : Écris un script PHP qui retourne
{"message": "Hello Laravel!"}en JSON. (Indice :header('Content-Type: application/json'); echo ...) - Défi : Ouvre le simulateur interactif ci-dessous. Clique sur chaque ligne du pseudo-code pour voir le cycle en action.
⚡ Simulateur — Cycle d'une requête HTTP avec Laravel
Étape 1/6🌐 Le navigateur envoie une requête HTTP GET à l'adresse de l'API. Le Header indique l'hôte et le chemin.