PHP 8 et Symfony 7.4 LTS - Parcours individuel de développement web
Description
PHP 8 et Symfony 7.4 LTS constituent aujourd'hui un socle moderne et durable pour le développement d'applications web professionnelles. PHP 8 apporte des évolutions majeures du langage (typage strict, attributs, énumérations, propriétés en constructeur, match), tandis que Symfony 7.4 LTS consolide une architecture éprouvée autour du conteneur de services, de Doctrine ORM, de la sécurité, des formulaires et d'un écosystème complet de composants réutilisables. Symfony 7.4 LTS, en tant que branche Long Term Support, garantit aux entreprises une base technique soutenue sur plusieurs années. Cette formation s'adresse à un développeur unique souhaitant maîtriser ce duo dans le cadre d'un projet professionnel. Le format individuel one-to-one permet d'adapter en permanence le rythme, la profondeur et les cas pratiques au contexte et au niveau réel de l'apprenant, et de couvrir en 3 jours un périmètre qui nécessite souvent 4 à 5 jours en format collectif. Le programme couvre PHP 8 dans ses aspects modernes, l'architecture Symfony 7.4, le développement de pages dynamiques avec Twig, la persistance avec Doctrine ORM, la gestion des formulaires, la sécurité, les services et l'injection de dépendances, ainsi que les bonnes pratiques de structuration d'une application Symfony professionnelle. Une ouverture est faite en fin de parcours sur les principes de migration vers Symfony 8.
Objectifs pédagogiques
- Maîtriser les apports modernes de PHP 8 : typage, attributs, énumérations, syntaxes récentes
- Comprendre l'architecture de Symfony 7.4 LTS et le rôle de ses principaux composants
- Mettre en place un projet Symfony 7.4 et son environnement de développement
- Développer des contrôleurs, routes et templates Twig pour une application web dynamique
- Manipuler une base de données avec Doctrine ORM : entités, relations, requêtes
- Construire et valider des formulaires Symfony robustes
- Mettre en place les mécanismes essentiels de sécurité Symfony : authentification, autorisation, rôles et voters
- Structurer une application autour du conteneur de services et de l'injection de dépendances
- Identifier les principaux niveaux de tests d'une application Symfony : tests unitaires, fonctionnels et intégration
- Comprendre les principes d'industrialisation d'un projet Symfony : environnements, logs, cache, tests et CI/CD
- Comprendre les principes de migration Symfony 7.4 LTS vers Symfony 8 : dépréciations, compatibilité, stratégie d'évolution
Public concerné
Prérequis
Déroulé du programme
Jour 1 / PHP 8 moderne et fondamentaux Symfony 7.4 (7h)
Module 1 / PHP 8 moderne et programmation orientée objet (3h)
• Apports majeurs de PHP 8 : typage strict, types union, types nullable, retours typés
• Propriétés en constructeur (constructor property promotion)
• Attributs PHP : déclaration, lecture, usage dans Symfony
• Énumérations (enums) : déclaration, méthodes, cas d'usage
• Expression match : syntaxe et cas d'usage par rapport au switch
• Arguments nommés
• Programmation orientée objet : classes, interfaces, traits, héritage, polymorphisme
• Espaces de noms (namespaces) et autoloading PSR-4
Module 2 / Architecture Symfony 7.4 et premier projet (2h)
• Positionnement de Symfony 7.4 LTS dans l'écosystème PHP
• Architecture du framework : kernel, bundles, composants, contracts
• Installation et configuration : Symfony CLI, Composer, Symfony Flex
• Structure d'un projet Symfony 7.4 : config, src, templates, public, var
• Le profiler et la web debug toolbar : outil clé du développeur Symfony
• Cycle de vie d'une requête HTTP dans Symfony
• Premier projet : création, lancement du serveur de développement
Module 3 / Routing, contrôleurs et templates Twig (2h)
• Définition des routes : attributs PHP, et aperçu des alternatives de configuration YAML/PHP
• Paramètres de route : statiques, dynamiques, contraintes
• Contrôleurs : structure, retour de réponse, AbstractController
• Twig : syntaxe, variables, filtres, fonctions, contrôle de flux
• Héritage de templates : extends, blocks, include
• Organisation des templates Twig et réutilisation de fragments
• Cas pratique : développement de plusieurs pages dynamiques avec navigation
Jour 2 / Doctrine ORM, formulaires et persistance (7h)
Module 4 / Doctrine ORM : entités et persistance (3h)
• Architecture Doctrine : Entity Manager, Repository, requêtes
• Création d'entités : attributs PHP, types de données, contraintes
• Migrations : génération, exécution, rollback
• Opérations CRUD : persist, flush, find, findAll, remove
• Repositories personnalisés : méthodes de requête, QueryBuilder
• DQL : Doctrine Query Language, syntaxe et cas d'usage
• Cas pratique : modélisation et manipulation d'une base de données métier
Module 5 / Relations entre entités (1h30)
• Relations OneToOne, OneToMany, ManyToOne, ManyToMany
• Configuration des relations : owning side et inverse side
• Cascade et orphan removal
• Stratégies de fetch : EAGER vs LAZY, optimisation des requêtes
• Cas pratique : modélisation d'un domaine avec plusieurs relations
Module 6 / Formulaires Symfony et validation (2h30)
• Création de formulaires : FormBuilder, classes Form Type
• Types de champs : Text, Email, Choice, Entity, Collection, File
• Liaison entre formulaire et entité
• Validation : contraintes, groupes de validation, messages personnalisés
• Affichage et personnalisation des formulaires dans Twig
• Gestion de la soumission et traitement des données
• Cas pratique : formulaire complet de création et édition d'entité
Jour 3 / Sécurité, services, bonnes pratiques et industrialisation (7h)
Module 7 / Sécurité et authentification (2h30)
• Composant Security : architecture, firewall, authenticators
• Authentification par formulaire de login
• Hashage des mots de passe et User Provider
• Gestion des rôles et hiérarchie des rôles
• Voters : politiques d'autorisation personnalisées
• Sécurité des routes et des actions de contrôleur
• Cas pratique : mise en place d'une authentification complète avec gestion des droits
Module 8 / Services, injection de dépendances et événements (2h)
• Conteneur de services : principes, configuration, autowiring
• Création de services personnalisés : logique métier, organisation
• Injection de dépendances : constructor injection comme pratique centrale, injection via attributs à utiliser avec discernement
• Configuration et paramètres : services.yaml, paramètres d'environnement
• EventDispatcher : événements Symfony, subscribers, listeners
• Cas pratique : extraction de logique métier dans un service dédié
Module 9 / Bonnes pratiques et ouvertures (1h30)
• Structuration d'une application Symfony professionnelle : layers, conventions
• Gestion des environnements : dev, test, prod
• Variables d'environnement et fichiers .env
• Logging avec Monolog et journalisation des erreurs
• Cache HTTP et cache applicatif : principes et configuration
• Ouverture sur les tests : panorama PHPUnit avec Symfony Test Framework, niveaux de tests (unitaires, fonctionnels, intégration)
• Ouverture sur l'industrialisation : Composer scripts, Symfony Console, principes CI/CD
Atelier final de synthèse (1h)
• Mise en perspective d'un projet Symfony complet incluant les concepts vus
• Discussion sur les pratiques et les cas d'usage du projet professionnel de l'apprenant
• Ouverture sur Symfony 8 : comprendre les principes de migration Symfony 7.4 LTS vers Symfony 8 (dépréciations, compatibilité, stratégie d'évolution)
• Recommandations personnalisées pour la mise en application immédiate
Informations
Durée
3 jour(s)
21h
Sur demande