🎼 Symfony 7.4 — Le cours complet (Débutant → Expert)
Cours exhaustif en français pour maîtriser Symfony 7.4 LTS, écrit spécialement pour un développeur Next.js / React qui a des bases lointaines en Symfony (v5) et veut redevenir opérationnel, jusqu’au niveau expert — avec le PHP moderne (8.0 → 8.4) remis à niveau au passage.
Version couverte : Symfony 7.4 LTS (sortie en novembre 2025 — PHP 8.2+ requis, on utilise 8.3/8.4). C’est la dernière version LTS (support long : correctifs jusqu’en ~2028, sécurité jusqu’en ~2029) et la dernière de la lignée 7.x. Symfony 8.0 est sorti en même temps (novembre 2025) et correspond à 7.4 sans le code déprécié ; en écrivant du 7.4 « propre », vous apprenez du code déjà compatible 8.x. On cible donc la LTS et on signale les spécificités 8.x par des encadrés ⚡.
Le fil rouge : BookLab. Tout au long du cours, on construit une vraie application : BookLab, un SaaS de réservation de créneaux (coachs / salles / services). Une seule app Symfony qui expose deux visages :
- un back-office pour les administrateurs, en Twig + Symfony UX (le Symfony full-stack) ;
- une API (REST via API Platform, temps réel via Mercure) consommée par un front Next.js public.
C’est exactement l’architecture qui rend ta double compétence rare et bien payée : backend Symfony + front Next.js.
Comment utiliser ce cours
- Tu es rouillé en PHP → la Partie 2 (« PHP moderne pour dev JS/TS ») est ton point de départ obligatoire : tout ce qui a changé depuis PHP 7 (enums, attributs,
readonly, types, promotion de constructeur…). - Tu veux coder tout de suite → Partie 3 (installation) puis Partie 4 (le cœur) puis Partie 6 (Doctrine).
- Ton objectif = backend d’une app Next.js → Parties 10 (Sécurité/JWT), 11 (API Platform + Next.js) et 12 (Mercure temps réel).
- Tu veux connecter Symfony à Moodle / WordPress → Partie 13 (Interopérabilité + outil LTI).
- Tu veux en vivre → Partie 17 (Monétiser Symfony × Next.js).
Chaque chapitre suit le même format (détail dans Conventions) : ⏱️ TL;DR, 🎯 objectifs, corps détaillé avec diagrammes Mermaid et code complet, encadrés 💡 Pour un dev Next.js / ⚡ Depuis Symfony 5 / 🐘 Rappel PHP 8+, ✏️ exercices corrigés et 🧠 quiz en fin de chapitre.
Table des matières
🧭 Socle
Partie 1 — Découvrir Symfony & l’écosystème PHP moderne
01-decouverte/ — Ce qu’est Symfony 7.4, histoire, composants vs framework, Flex, positionnement vs Laravel et vs les API routes de Next.js. (≈0 code)
Partie 2 — PHP moderne pour dev JS/TS
02-php-moderne/ — Types, enums, readonly, attributs, promotion de constructeur, arguments nommés, match, first-class callables, union/intersection, nullsafe, Fibers ; Composer, PSR-4, namespaces, autoload. Comparaisons directes avec TypeScript.
Partie 3 — Installation & environnement de dev
03-installation-dev/ — PHP 8.4, Composer, Symfony CLI, Docker / FrankenPHP, Flex & recipes, .env, structure d’un projet. On démarre BookLab.
⚙️ Le cœur du framework
Partie 4 — HTTP, Kernel, Routing, Controllers
04-coeur-http/ — Request/Response, HttpKernel, routing par attributs, contrôleurs, #[MapEntity], #[MapRequestPayload], sessions ; créer une commande console.
Partie 5 — Injection de dépendances & Services
05-services-di/ — Le conteneur, autowiring, autoconfiguration, tags, compiler passes, paramètres, environnements, bundles, EventDispatcher.
Partie 6 — Doctrine ORM & base de données
06-doctrine/ — Entités, attributs ORM, relations, repositories, DQL / QueryBuilder, migrations, fixtures, lifecycle, perf (N+1), recherche (Meilisearch). Le modèle de données de BookLab.
🖥️ Full-stack
Partie 7 — Twig, AssetMapper & back-office
07-twig-backoffice/ — Twig (héritage, composants Twig), AssetMapper ; back-office BookLab en Twig « à la main » et avec EasyAdmin.
Partie 8 — Symfony UX : Stimulus, Turbo, LiveComponents
08-symfony-ux/ — Réactivité sans SPA : Stimulus, Turbo (Drive/Frames/Streams), LiveComponents, comparés à React.
Partie 9 — Formulaires, validation & upload
09-formulaires/ — Form component, DTO, contraintes de validation, CSRF, thèmes de formulaire, upload de fichiers (Flysystem / S3).
Partie 10 — Sécurité & authentification
10-securite/ — Firewalls, authenticators, voters, rôles, hachage ; JWT pour l’API, refresh tokens, OAuth, 2FA. Sécuriser BookLab (session côté back-office, JWT côté API).
🚀 API headless & temps réel (le cœur premium)
Partie 11 — ⭐ API Platform & API headless pour Next.js
11-api-platform/ — Resources, groupes de sérialisation, DTO, filtres, pagination, OpenAPI/Swagger, CORS, versioning (GraphQL en option). Consommer l’API depuis Next.js (fetch, JWT, RSC/SSR, revalidation).
Partie 12 — Temps réel & asynchrone
12-temps-reel-async/ — Mercure (SSE), Messenger (buses, transports, retries, échecs), Scheduler, Mailer, Notifier ; Stripe (paiement + webhooks). Places en temps réel + e-mails de BookLab, consommés côté Next.js.
Partie 13 — Interopérabilité : API externes, Moodle, WordPress, LTI
13-interop/ — HttpClient (consommer REST/SOAP), composant Webhook/RemoteEvent, pont Symfony ↔ WordPress (REST API), pont Symfony ↔ Moodle (Web Services), et construire un outil LTI 1.3 en Symfony qui se branche dans Moodle.
🏭 Qualité & production
Partie 14 — Tests & qualité
14-tests-qualite/ — PHPUnit, WebTestCase, ApiTestCase, fixtures de test, mocks, couverture, PHPStan, PHP CS Fixer, Rector, CI GitHub Actions.
Partie 15 — Expert : perf, prod, architecture, industrialisation
15-expert/ — Cache (HTTP, Redis), profiler, FrankenPHP worker mode, déploiement & CI/CD ; observabilité & durcissement prod (Sentry, OpenTelemetry, rate limiting, CSP, secrets, OWASP) ; DDD / CQRS / hexagonal ; créer & publier un bundle Composer ; multi-tenant.
🎓 Pratique & carrière
Partie 16 — Annexes
16-annexes/ — Glossaire, cheatsheets (PHP 8.0→8.4, Symfony CLI, Doctrine, Twig), pièges & FAQ, guide de migration Symfony 5 → 7, ressources.
Partie 17 — Monétiser Symfony × Next.js
17-monetisation/ — Positionnement, freelance PHP/Symfony, TJM, produits & SaaS, le combo back Symfony + front Next.js comme offre premium (× Moodle / WordPress), cadre pratique FR.
Partie 18 — Mini-jeux (exploration guidée)
18-mini-jeux/ — Des centaines de micro-défis guidés, classés par terrain et par difficulté, avec solutions.
Partie 19 — Projets guidés
19-projets/ — 6 projets, du niveau 0 au niveau 5 ; capstone = BookLab complet + son front Next.js + un outil LTI.
Partie 20 — Quiz (auto-évaluation)
20-quiz/ — ~100 questions corrigées pour valider chaque bloc.
Parcours recommandé (dev Next.js → expert Symfony)
| Semaine | Contenu | Objectif |
|---|---|---|
| 1 | Parties 1–2 | Se resituer + remettre PHP 8+ à niveau |
| 2 | Parties 3–4 | Un projet Symfony qui tourne, comprendre requête→réponse |
| 3 | Parties 5–6 | Services/DI + Doctrine (le socle métier) |
| 4 | Parties 7–9 | Full-stack : Twig, UX, formulaires |
| 5 | Partie 10 | Sécurité + JWT |
| 6 | Partie 11 | API Platform + intégration Next.js (le cœur premium) |
| 7 | Parties 12–13 | Temps réel, async, Stripe, ponts Moodle/WordPress + LTI |
| 8 | Parties 14–15 | Tests, perf, prod, architecture |
| Après | Partie 17 | Monétiser : freelance + produit (complément de revenu) |
Cours écrit en juillet 2026, basé sur Symfony 7.4 LTS. Sources principales : symfony.com/doc , api-platform.com/docs , php.net .