Par Valentin Brosseau / @c4software
Pour construire votre site, vous deviez écrire :
include / require pour découper vos pages.session_start(), les header('Location: …').$_POST, la sécurité…À chaque projet. Depuis zéro.
Tout ce code que vous réécriviez à chaque fois…
Il est déjà écrit, testé, et surtout organisé.
Le framework vous impose un cadre : c'est sa force.
Navigateur → Route → Contrôleur → Vue (Blade) → HTMLChaque brique a un seul rôle.
Le point d'entrée : une URL, une action.
Route::get('/ping', function () {
return "pong";
});Toutes déclarées dans routes/web.php.
On pourrait écrire tout le code de l'application dans les routes…
Bonne idée ?
Une classe dont le rôle est de répondre aux requêtes :
Route::get('/ping', [PingPongControleur::class, 'ping']);La route dit « qui répond », le contrôleur dit « comment ».
Le HTML, avec des directives en plus :
<h1>{{ $word }}</h1>
@foreach($todos as $todo)
<li>{{ $todo }}</li>
@endforeachChaque directive = du PHP que vous connaissez déjà.
Votre site a 20 pages, toutes avec le même entête et le même pied de page.
Vous les copiez 20 fois ?
Un template « parent » écrit une seule fois :
@extends('layouts.base')
@section('content')
<h1>PONG</h1>
@endsectionLe parent définit la structure (@yield), les enfants remplissent les trous.
php artisan serve # Lancer le serveur
php artisan make:controller # Créer un contrôleur
php artisan route:list # Lister les routesLe terminal vous fait gagner du temps. Beaucoup.
Deux réflexes dès aujourd'hui :
@csrf dans chaque formulaire (protection contre les requêtes forgées, et évite également le rejeu d'une requête).Place au TP 🚀