4.2 · Laravel : routes, Blade, Eloquent ORM, migrations

Niveau 4 · Frameworks & API

4.2Laravel : routes, Blade, Eloquent ORM, migrations

Objectif : construire une application complète avec le framework PHP le plus populaire.
Temps estimé : 13 min

Laravel est le framework PHP le plus populaire — élégant, productif, avec un vaste écosystème, il est devenu la référence pour construire des applications web PHP modernes. Il implémente le MVC (section 4-1) et fournit des outils puissants qui rendent le développement rapide et agréable, tout en appliquant les bonnes pratiques (sécurité, structure). Découvrons ses composants clés. Le ROUTAGE : Laravel associe des URL à des actions de façon claire — Route::get('/produits', [ProduitController::class, 'index']); dirige les requêtes GET sur /produits vers la méthode index du contrôleur ProduitController. Le routage est expressif (GET, POST, routes avec paramètres, groupes, middlewares). Les contrôleurs : classes qui traitent les requêtes (reçoivent la requête, appellent les modèles, retournent une vue ou une réponse), organisant la logique de coordination. Laravel fournit aussi de nombreux outils via sa ligne de commande Artisan (générer des contrôleurs, des modèles, lancer des migrations, etc.).

Deux composants phares de Laravel. Blade : le moteur de TEMPLATES (les vues) — une syntaxe propre et lisible pour générer du HTML avec des données ({{ $variable }} pour afficher, des directives @foreach, @if… pour la logique d'affichage), avec un ÉCHAPPEMENT AUTOMATIQUE des données (protection XSS par défaut — un avantage de sécurité majeur) et un système de « layouts » (mises en page réutilisables, héritage de templates). Blade remplace avantageusement le mélange PHP/HTML « brut ». Eloquent : l'ORM (Object-Relational Mapper) de Laravel — il fait correspondre les TABLES de la base à des CLASSES (modèles) et les lignes à des OBJETS. On manipule alors la base via des objets et des méthodes élégantes (Produit::all() pour tous les produits, Produit::find($id), $produit->save(), Produit::where('prix', '>', 100)->get()) au lieu d'écrire du SQL — avec les requêtes préparées automatiques (sécurité contre l'injection SQL), la gestion élégante des RELATIONS entre tables (un utilisateur a plusieurs commandes…), et bien plus. Eloquent rend l'accès aux données très productif et sûr. Les migrations : un système pour VERSIONNER la structure de la base de données (créer/modifier des tables via du code PHP, versionné avec Git) — au lieu de modifier la base à la main, on écrit des migrations, ce qui rend la structure reproductible et l'évolution traçable (essentiel en équipe et pour le déploiement). Laravel offre encore énormément : authentification prête à l'emploi, validation, gestion des sessions/cookies sécurisée, protection CSRF automatique, files d'attente, tâches planifiées, tests, et un immense écosystème de paquets. Apprendre Laravel est un excellent investissement : c'est le framework PHP le plus demandé, très productif (on construit des applications complètes rapidement), qui applique les bonnes pratiques (sécurité, structure MVC) et ouvre de nombreuses opportunités professionnelles. Comprendre ses composants (routage, contrôleurs, Blade, Eloquent, migrations) permet de bâtir des applications web modernes, structurées et sûres — le cœur du développement PHP professionnel actuel.

Vocabulaire de la section

Laravel
Le framework PHP le plus populaire (élégant, productif, vaste écosystème) ; implémente le MVC et fournit des outils puissants appliquant les bonnes pratiques. La référence du PHP moderne.
Routage / contrôleurs / Artisan
Routage : associer des URL à des actions (Route::get). Contrôleurs : classes traitant les requêtes. Artisan : ligne de commande (générer du code, migrations…).
Blade (templates)
Le moteur de templates de Laravel : syntaxe propre ({{ }}, @foreach, @if) avec ÉCHAPPEMENT AUTOMATIQUE (protection XSS par défaut) et layouts réutilisables (héritage).
Eloquent (ORM)
L'ORM de Laravel : tables ↔ classes (modèles), lignes ↔ objets ; manipuler la base via des objets/méthodes (Produit::all()) au lieu de SQL, avec requêtes préparées auto et gestion des relations.
Migrations
Système versionnant la structure de la base (créer/modifier des tables via du code PHP versionné) : structure reproductible, évolution traçable — essentiel en équipe et au déploiement.
Vérifiez votre compréhension

Qu'apporte un framework comme Laravel par rapport au PHP « à la main » ?

Tutoriel 4.2
Tutos « 4.2 » Laravel route Blade Eloquent ORM migration framework PHP (recherche)
Cliquer pour voir les résultats à jour ↗

En pratique — Construire avec Laravel

  1. Créez un projet Laravel (via Composer), explorez sa structure MVC (routes, contrôleurs, modèles, vues Blade) et la ligne de commande Artisan.
  2. Définissez des routes (Route::get/post) pointant vers des contrôleurs ; créez une vue Blade avec {{ }} et @foreach (échappement automatique).
  3. Utilisez Eloquent : créez un modèle, faites un CRUD via des objets/méthodes (Model::all/find/where, ->save) — sans écrire de SQL, avec requêtes préparées automatiques.
  4. Créez une migration pour définir/versionner une table ; découvrez l'authentification, la validation et la protection CSRF fournies par Laravel.
Vous construisez des applications web modernes avec Laravel (routage, contrôleurs, vues Blade, ORM Eloquent, migrations) — structurées, productives et sûres, le cœur du PHP professionnel actuel.

Points clés à retenir

  • LARAVEL = le framework PHP le plus POPULAIRE (élégant, productif, écosystème riche), implémentant le MVC avec les bonnes pratiques (sécurité, structure). La référence.
  • ROUTAGE (Route::get, URL → actions), CONTRÔLEURS (traitent les requêtes), ARTISAN (ligne de commande : générer du code, migrations).
  • BLADE (templates) : syntaxe propre ({{ }}, @foreach) avec ÉCHAPPEMENT AUTOMATIQUE (protection XSS). ELOQUENT (ORM) : manipuler la base via des OBJETS (Produit::all) au lieu de SQL, requêtes préparées auto, relations.
  • MIGRATIONS : versionner la structure de la base (code PHP versionné) = reproductible et traçable. Laravel fournit aussi auth, validation, CSRF auto, files, tests… Excellent investissement (framework le plus demandé).

Questions fréquentes

Qu'est-ce qu'un framework comme Laravel apporte vraiment par rapport à du PHP « à la main » ?

Un framework comme Laravel apporte une STRUCTURE, des OUTILS puissants, des bonnes pratiques intégrées et une productivité énorme — comprendre ces apports montre pourquoi les frameworks sont incontournables en PHP professionnel. Ce que Laravel (et les frameworks) apportent : (1) STRUCTURE (MVC) imposée. Le framework impose une organisation claire (MVC : modèles, contrôleurs, vues, routage) — fini le « code spaghetti ». Votre application est structurée dès le départ, navigable, maintenable. Vous ne réinventez pas l'architecture à chaque projet. (2) PRODUCTIVITÉ. Le framework fournit des OUTILS qui accélèrent énormément le développement : un ORM (Eloquent) pour la base (manipuler des objets au lieu d'écrire du SQL), un moteur de template (Blade) pour les vues, un système de routage, une ligne de commande (Artisan) pour générer du code, et des dizaines de fonctionnalités prêtes à l'emploi. On construit des applications COMPLÈTES bien plus vite qu'à la main. (3) SÉCURITÉ intégrée (par défaut). Point majeur : Laravel applique les bonnes pratiques de sécurité AUTOMATIQUEMENT : échappement automatique dans Blade (protection XSS), requêtes préparées via Eloquent (protection injection SQL), protection CSRF automatique sur les formulaires, hachage sécurisé des mots de passe, système d'authentification robuste. Beaucoup de failles que vous devriez éviter manuellement en PHP « à la main » sont GÉRÉES par le framework. Utiliser un framework est en soi un gain de sécurité énorme (moins d'erreurs). (4) FONCTIONNALITÉS prêtes à l'emploi. Authentification (inscription, connexion, réinitialisation de mot de passe), validation des données, gestion des sessions/cookies sécurisée, envoi d'e-mails, files d'attente, tâches planifiées, tests, migrations de base, et bien plus — tout cela est FOURNI, testé, éprouvé. Vous n'avez pas à recoder ces composants (souvent complexes et sensibles). (5) BONNES PRATIQUES et conventions. Le framework encourage (voire impose) des bonnes pratiques (séparation des responsabilités, injection de dépendances, patterns éprouvés) et des conventions (« convention over configuration ») qui rendent le code cohérent et professionnel. (6) ÉCOSYSTÈME et COMMUNAUTÉ. Laravel a un immense écosystème (paquets, outils, documentation excellente) et une grande communauté (aide, ressources, tutoriels). Un problème rencontré a souvent une solution documentée. (7) MAINTENABILITÉ et ÉVOLUTIVITÉ. Un projet Laravel bien fait est plus facile à maintenir, faire évoluer, et reprendre (structure standard que d'autres développeurs Laravel connaissent). Les migrations versionnent la base, les tests fiabilisent, la structure clarifie. Ce que ça implique par rapport au PHP « à la main » : (1) En PHP « à la main » (sans framework), vous DEVEZ tout construire/gérer vous-même : la structure, le routage, l'accès à la base sécurisé, l'authentification, la validation, la sécurité (échappement, CSRF, injection)... C'est FORMATEUR (comprendre les mécanismes — d'où l'intérêt des niveaux précédents) mais LENT et RISQUÉ (facile d'oublier une protection, de mal structurer). (2) Avec un framework, ces aspects sont FOURNIS et bien faits — vous vous concentrez sur votre application (la logique métier, les fonctionnalités) plutôt que sur la « plomberie » et la sécurité de base. Pourquoi apprendre le PHP « à la main » AVANT le framework (comme le fait ce guide) : comprendre les FONDAMENTAUX (le langage, HTTP, la base, la sécurité, le MVC) vous permet d'utiliser le framework INTELLIGEMMENT (comprendre ce qu'il fait, pourquoi, comment) plutôt que par imitation aveugle. Un développeur qui comprend les bases ET utilise un framework est bien plus efficace que quelqu'un qui ne connaît que le framework en boîte noire (perdu dès qu'un problème sort du cadre). La progression « bases d'abord, framework ensuite » est la bonne. Quand utiliser un framework : (1) Pour toute application RÉELLE/sérieuse → un framework (Laravel, Symfony) est quasi indispensable (productivité, sécurité, maintenabilité, standard professionnel). (2) Pour APPRENDRE les fondamentaux ou de tout petits scripts → le PHP « à la main » est formateur/suffisant. (3) En pratique professionnelle, les frameworks DOMINENT (les projets et emplois PHP utilisent massivement Laravel/Symfony). En résumé : un framework comme Laravel apporte une STRUCTURE (MVC), une PRODUCTIVITÉ énorme (outils : ORM, templates, routage, générateurs), une SÉCURITÉ intégrée par défaut (échappement, requêtes préparées, CSRF — évitant beaucoup de failles), des FONCTIONNALITÉS prêtes à l'emploi (auth, validation, migrations…), des bonnes pratiques, et un écosystème riche — bien au-delà de ce qu'on ferait raisonnablement « à la main ». Le PHP « à la main » est formateur (comprendre les mécanismes) mais lent et risqué pour de vraies applications. Comprenez les fondamentaux d'abord (pour utiliser le framework intelligemment), puis adoptez un framework pour le développement réel (productivité, sécurité, standard professionnel). Laravel étant le plus populaire et demandé, l'apprendre est un excellent investissement — il représente le cœur du développement PHP professionnel moderne, alliant rapidité, sécurité et structure.

Qu'est-ce qu'un ORM comme Eloquent, et faut-il quand même connaître le SQL ?

Un ORM (comme Eloquent de Laravel) est une couche qui permet de manipuler la base de données via des OBJETS au lieu d'écrire du SQL — c'est très productif et sûr, MAIS il faut quand même connaître le SQL sous-jacent pour l'utiliser efficacement (nous l'avons vu pour Node avec Prisma, le principe est identique). Ce qu'est un ORM : ORM signifie Object-Relational Mapper (mappeur objet-relationnel). Il fait CORRESPONDRE le monde OBJET (vos classes PHP) et le monde RELATIONNEL (les tables de la base) : les TABLES ↔ des CLASSES (modèles), les LIGNES ↔ des OBJETS, les COLONNES ↔ des propriétés. Ainsi, au lieu d'écrire du SQL, vous manipulez des objets et des méthodes. Avec Eloquent : (1) Produit::all() récupère tous les produits (comme objets), au lieu de SELECT * FROM produits ; (2) Produit::find($id) récupère un produit par son id ; (3) Produit::where('prix', '>', 100)->get() filtre (au lieu de SELECT ... WHERE prix > 100) ; (4) $produit->save() enregistre ; (5) $produit->delete() supprime. Vous travaillez avec des objets Produit, pas avec des chaînes SQL. Ce que l'ORM APPORTE : (1) PRODUCTIVITÉ. Manipuler des objets/méthodes est plus rapide et concis que d'écrire du SQL pour les opérations courantes (CRUD, requêtes simples). (2) SÉCURITÉ. L'ORM utilise des REQUÊTES PRÉPARÉES automatiquement — protection contre l'injection SQL par défaut (avantage majeur, comme vu). (3) LISIBILITÉ. Le code ORM (objets, méthodes) est souvent plus lisible que du SQL éparpillé. (4) GESTION des RELATIONS. Les ORM gèrent élégamment les relations entre tables (un utilisateur a plusieurs commandes, une commande appartient à un utilisateur) : $utilisateur->commandes récupère les commandes liées — bien plus simple que des jointures SQL manuelles. (5) ABSTRACTION. L'ORM abstrait la base (dans une certaine mesure, on peut changer de base). (6) Fonctionnalités : migrations, validations, événements de modèle, etc. Eloquent rend l'accès aux données très productif et agréable. Faut-il quand même connaître le SQL ? OUI, absolument, pour plusieurs raisons : (1) Comprendre ce que l'ORM FAIT. L'ORM GÉNÈRE du SQL sous le capot. Pour comprendre ce qui se passe (déboguer, optimiser), il faut comprendre le SQL généré. Un ORM utilisé sans comprendre le SQL est une boîte noire dangereuse (on ne sait pas ce qu'on exécute vraiment). (2) ÉVITER les problèmes de PERFORMANCE. Un ORM mal utilisé peut générer du SQL INEFFICACE — le problème classique du « N+1 » (faire une requête par élément d'une liste au lieu d'une seule, dévastateur pour la performance) est un piège fréquent des ORM. Pour l'éviter et optimiser (charger les relations efficacement — « eager loading »), il faut comprendre le SQL sous-jacent. Sans culture SQL, on écrit du code ORM lent sans le savoir. (3) REQUÊTES COMPLEXES. Pour des requêtes très complexes ou optimisées, l'ORM ne suffit pas toujours (ou génère du SQL sous-optimal) — on descend alors au SQL brut (les ORM le permettent : Laravel a le « Query Builder » et permet du SQL brut). Connaître le SQL est nécessaire pour ces cas. (4) Le SQL est UNIVERSEL et TRANSFÉRABLE — une compétence qui vaut au-delà de tout ORM ou framework. Comprendre les bases de données relationnelles (tables, relations, jointures, index, requêtes) est fondamental. La bonne approche : (1) APPRENEZ les bases du SQL et du modèle relationnel (indispensable — niveaux précédents avec MySQL/PDO). (2) UTILISEZ un ORM (Eloquent) pour la productivité et la sécurité dans vos applications (le cas courant). (3) COMPRENEZ ce que l'ORM génère (ne le traitez pas en boîte noire) — sachez lire le SQL produit, repérer les problèmes (N+1). (4) SACHEZ descendre au SQL brut pour les cas complexes/optimisés. (5) Le duo « comprendre le SQL + utiliser un ORM intelligemment » est le plus efficace. En résumé : un ORM comme Eloquent permet de manipuler la base via des OBJETS/méthodes au lieu de SQL (productivité, sécurité par requêtes préparées automatiques, gestion élégante des relations, lisibilité) — un grand confort. MAIS il faut connaître le SQL sous-jacent pour : comprendre ce que l'ORM fait, éviter les problèmes de performance (N+1), gérer les requêtes complexes, et parce que le SQL est une compétence universelle. Ne traitez pas l'ORM en boîte noire aveugle : utilisez-le pour la productivité, EN comprenant le SQL qu'il génère. Le meilleur développeur maîtrise le SQL ET utilise un ORM intelligemment — la productivité de l'outil, portée par la compréhension des fondamentaux. C'est encore un cas où l'outil (ORM) accélère, mais où la compréhension du fondement (SQL, bases relationnelles) reste indispensable pour l'utiliser correctement et efficacement.

Autres ressources