Cours Développement Web

Laravel
CRUD API

Construire une API REST complète — migrations, modèles, contrôleurs, routes et vues Blade.

🐘 PHP 8.2🚀 Laravel 11 🗄️ MySQL🎨 Blade📡 REST
Introduction

Qu'est-ce que Laravel ?

Laravel est un framework PHP open-source qui fournit une architecture élégante pour construire des applications web et des APIs REST robustes.

  • Architecture MVC — séparation claire des responsabilités
  • Eloquent ORM — interactions fluides avec la BD
  • 🛣️Routing expressif — définir des routes en une ligne
  • 🎨Blade — moteur de templates puissant
  • 🔧Artisan CLI — génération de code automatique
Installation rapide
$composer create-project laravel/laravel app
$cd app && php artisan serve
💡Laravel démarre sur http://localhost:8000 par défaut.
Architecture

Le Pattern MVC dans Laravel

Laravel suit le pattern Model-View-Controller pour organiser le code de façon claire et maintenable.

  • MModel — représente les données & logique métier (Eloquent)
  • VView — présentation HTML via Blade
  • CController — orchestre Model ↔ View
Flux d'une requête MVC
Client
🌐 Requête HTTP
GET /products
Router
🛣️ routes/web.php
Route::resource
Control.
⚡ ProductController
index() / store()
🏗️ Model
Eloquent
🎨 View
Blade
REST API

Les Verbes HTTP & CRUD

Une API REST utilise les méthodes HTTP pour définir les opérations CRUD sur les ressources.

  • RRead — récupérer avec GET
  • CCreate — créer avec POST
  • UUpdate — modifier avec PUT / PATCH
  • DDelete — supprimer avec DELETE
Routes générées par Route::resource
GET
/products
Liste tous les produits
POST
/products
Crée un produit
GET
/products/{id}
Affiche un produit
PUT
/products/{id}
Met à jour
DEL
/products/{id}
Supprime
GET
/products/create
Formulaire
Structure

Organisation d'un projet Laravel

Chaque fichier a sa place définie par convention dans le framework.

  • 📁app/Models — classes Eloquent
  • 📁app/Http/Controllers — contrôleurs
  • 📁database/migrations — schéma BD
  • 📁resources/views — templates Blade
  • 📄routes/web.php — routes HTTP
laravel-app/
app/
Http/Controllers/
ProductController.php
Models/
Product.php
database/migrations/
..._create_products_table.php
resources/views/products/
index.blade.php
create.blade.php
routes/web.php ← Route::resource
.env ← config BD
Eloquent ORM

Interagir avec la Base de Données

Eloquent est l'ORM intégré de Laravel. Il permet d'interagir avec la BD à travers des classes PHP fluides et expressives.

  • 🔍Product::all() — récupérer tous
  • Product::create($data) — créer
  • ✏️$p->update($data) — mettre à jour
  • 🗑️$p->delete() — supprimer
  • 🔎Product::find($id) — par ID
Requêtes Eloquent fluides
ProductController.phpPHP
// Récupérer avec pagination
$products = Product::latest()->paginate(10);

// Filtrer et trier
$cheap = Product::where('price', '<', 50)
                ->orderBy('name')->get();

// Créer depuis un formulaire
Product::create($request->validated());
Maintenant

Place au TP Guidé !

Vous avez assimilé les concepts. Construisez une vraie API REST — étape par étape, avec énoncé, indices et correction.

🗄️ Migration🏗️ Model ⚡ Controller🛣️ Routes🎨 Blade
naviguerEspace suivant