Laravel
Laravel 11 & 10 • Introduction

C'est quoi Laravel ? L'Écosystème PHP Moderne

Découvrez le framework web open-source le plus plébiscité de l'univers PHP. Conçu pour le plaisir des développeurs (« The PHP Framework for Web Artisans »), Laravel allie élégance syntaxique, robustesse et productivité maximale.

🏰
Architecture MVC

Séparation claire et saine : les Modèles gèrent les données, les Contrôleurs la logique, et Blade l'interface utilisateur.

⚡
Batteries Incluses

Routage expressif, ORM Eloquent, validation automatique, authentification, envoi d'emails et files d'attente intégrés d'office.

🛠️
Artisan CLI

L'assistant terminal ultime : générez des contrôleurs, exécutez des migrations et inspectez vos routes en une seule commande.

🚀
Écosystème Riche

Breeze, Livewire, Filament, Sanctum, Inertia.js : des outils officiels pour créer des applications complètes à vitesse record.

routes/web.php & ArticleController.php (Syntaxe Moderne)
// 1. routes/web.php : Routage moderne typé par classe (Laravel 10 / 11)
use App\Http\Controllers\ArticleController;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('accueil');
});

// Route pointant vers une méthode de contrôleur
Route::get('/articles', [ArticleController::class, 'index'])->name('articles.index');
Route::get('/articles/{article}', [ArticleController::class, 'show'])->name('articles.show');

// 2. app/Http/Controllers/ArticleController.php : Contrôleur avec Eloquent
namespace App\Http\Controllers;

use App\Models\Article;
use Illuminate\View\View;

class ArticleController extends Controller
{
    public function index(): View
    {
        // Eloquent ORM : syntaxe lisible et sécurisée contre les injections SQL
        $articles = Article::where('publie', true)
            ->latest()
            ->paginate(10);

        return view('articles.index', compact('articles'));
    }

    // Route Model Binding : Laravel injecte automatiquement l'article correspondant à l'ID !
    public function show(Article $article): View
    {
        return view('articles.show', [
            'article' => $article
        ]);
    }
}

Simulateur Cycle de Vie d'une Requête MVC (Request Lifecycle)

Simulation Architecture Laravel

Sélectionnez une URL d'exemple et suivez le cheminement pas-à-pas de la requête à travers le routeur, le contrôleur, le modèle Eloquent et le rendu Blade.

🧭
1. Route & Middleware
routes/web.php
Filtrage & Correspondance
🎮
2. Contrôleur
ArticleController@index
Logique & Décision
🗄️
3. Modèle (Eloquent)
Article::latest()
Requête SQL Sécurisée
🖼️
4. Vue (Blade)
articles/index.blade.php
HTML renvoyé (200 OK)
📡 Trace d'Exécution LaravelPrêt
Cliquez sur "Exécuter le Cycle MVC" pour démarrer l'animation.

Pourquoi Choisir Laravel Aujourd'hui ?

1. Le PHP moderne : Strict, Rapide et Typé

Oubliez les scripts PHP procéduraux des années 2000. Couplé à PHP 8.2+ et 8.3+, Laravel bénéficie du typage strict, des constructeurs avec promotion de propriétés, du compilateur JIT et des enums natifs. C'est aujourd'hui l'un des langages les plus performants et simples à déployer au monde.

2. La structure allégée de Laravel 11

Dans Laravel 11, le dossier app/Http/Kernel.php et de nombreux fichiers de configuration verbeux ont disparu ! Les middlewares et les routes d'API sont désormais configurés de manière fluide et centralisée dans bootstrap/app.php.

3. Sécurisé par défaut

Laravel intègre nativement la protection contre les 3 failles web majeures :
• Injections SQL : Éradiquées par l'usage systématique de requêtes préparées PDO via Eloquent.
• Failles XSS : Les balises Blade {{ $variable }} échappent automatiquement tout code malveillant avec htmlspecialchars().
• Attaques CSRF : Chaque formulaire POST exige un jeton unique via la directive @csrf.

Tableau Comparatif : PHP Natif vs Framework Laravel

CritèrePHP Natif (Sans Framework)Laravel Moderne
Structure du projetFichiers dispersés, code spaghettiArchitecture MVC claire et standardisée
Accès Base de DonnéesRequêtes SQL manuelles écrites en durEloquent ORM élégant et requêtes sécurisées
Système de TemplatesMélange de balises <?php ?> et HTMLMoteur Blade moderne avec composants <x-...>
Outils CLI & GénérateursAucun (création manuelle des fichiers)Artisan CLI puissant (make:controller, make:model)