Skip to Content
SymfonyAccueil

🎼 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)

SemaineContenuObjectif
1Parties 1–2Se resituer + remettre PHP 8+ à niveau
2Parties 3–4Un projet Symfony qui tourne, comprendre requête→réponse
3Parties 5–6Services/DI + Doctrine (le socle métier)
4Parties 7–9Full-stack : Twig, UX, formulaires
5Partie 10Sécurité + JWT
6Partie 11API Platform + intégration Next.js (le cœur premium)
7Parties 12–13Temps réel, async, Stripe, ponts Moodle/WordPress + LTI
8Parties 14–15Tests, perf, prod, architecture
AprèsPartie 17Moné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 .