Seb-Info

Route et MVC

Route et MVC

Le modèle MVC dans Laravel

Objectif : comprendre le principe du modèle MVC (Modèle – Vue – Contrôleur) et son application concrète dans le framework Laravel.


1. Qu’est-ce que le modèle MVC ?

Le modèle MVC est une architecture logicielle utilisée pour séparer les différentes responsabilités d’une application web.
Son but est de rendre le code plus clair, structuré et facile à maintenir.

Composant Rôle Correspondance Laravel
Modèle (Model) Gère les données et la logique métier (lecture, écriture, mise à jour en base de données) Dossier app/Models/
Vue (View) Affiche les informations à l’utilisateur (HTML, Blade, etc.) Dossier resources/views/
Contrôleur (Controller) Fait le lien entre les modèles et les vues (logique de traitement des requêtes) Dossier app/Http/Controllers/

Le modèle MVC de Laravel – apcpedagogie


2. Fonctionnement général

Quand un utilisateur visite une page de l’application Laravel, le processus suit toujours le même schéma :

  1. L’utilisateur envoie une requête HTTP (ex. : il visite /user).
  2. Le fichier de routes (routes/web.php) décide quel contrôleur doit traiter cette requête.
  3. Le contrôleur exécute la logique métier (souvent en contactant un modèle).
  4. Le modèle interagit avec la base de données et renvoie les données au contrôleur.
  5. Le contrôleur envoie ces données à une vue qui les affiche à l’utilisateur.

Ce cycle est appelé le flux MVC.


3. Exemple concret dans Laravel

Étape 1 : La route

Dans routes/web.php :

use App\Http\Controllers\UserController;

Route::get('/user', [UserController::class, 'index']);

➡️ Cette route indique que lorsqu’un utilisateur visite /user, Laravel appelle la méthode index() du contrôleur UserController.


Étape 2 : Le contrôleur

Dans app/Http/Controllers/UserController.php :

namespace App\Http\Controllers;

use App\Models\User;

class UserController extends Controller
{
    public function index()
    {
        // Récupération de tous les utilisateurs depuis le modèle
        $users = User::all();

        // Envoi des données à la vue "users.blade.php"
        return view('users', ['users' => $users]);
    }
}

➡️ Le contrôleur fait le lien entre la route, le modèle et la vue.


Étape 3 : Le modèle

Dans app/Models/User.php :

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    // Laravel gère automatiquement la table "users"
}

➡️ Le modèle User représente la table users de la base de données et permet de manipuler ses données facilement.


Étape 4 : La vue

Dans resources/views/users.blade.php :

<h1>Liste des utilisateurs</h1>

<ul>
@foreach($users as $user)
    <li>{{ $user->name }} - {{ $user->email }}</li>
@endforeach
</ul>

➡️ La vue affiche les données transmises par le contrôleur grâce au moteur de templates Blade.


4. Schéma récapitulatif du flux MVC

Navigateur → Route → Contrôleur → Modèle → Contrôleur → Vue → Navigateur

Chaque composant a un rôle clair et ne se substitue pas aux autres.


5. Avantages du modèle MVC

  • ✅ Code mieux organisé et plus lisible
  • Réutilisation du code facilitée
  • Collaboration aisée entre développeurs (backend/frontend)
  • Meilleure séparation des responsabilités

6. En résumé

Composant Responsabilité Exemple Laravel
Modèle Accès aux données et logique métier app/Models/User.php
Vue Affichage des données à l’utilisateur resources/views/users.blade.php
Contrôleur Coordonne la logique et fait le lien entre Modèle et Vue app/Http/Controllers/UserController.php

Conclusion : Comprendre le modèle MVC est essentiel pour bien utiliser Laravel.
Chaque requête passe par ces trois couches, ce qui rend les applications plus robustes, maintenables et évolutives.

Ce contenu est réservé aux membres du site. Si vous êtes un utilisateur existant, veuillez vous connecter. Les nouveaux utilisateurs peuvent s'inscrire ci-dessous.

Connexion pour les utilisateurs enregistrés
   
Nouvel utilisateur ?
*Champ requis
Powered by WP-Members