Profitez de -25 % pour toute nouvelle inscription à nos formations jusqu’au 31 décembre 2026

Formation en Développement: PHP framework Symfony - PHP8+ et Symfony 7+ - Ascent Formation
Retour aux formations
Développement

Formation PHP framework Symfony - PHP8+ et Symfony 7+

4 jour(s) • 28h
Éligible OPCO
8,8/10 avis apprenants

Description

Maîtriser le framework Symfony 7, Doctrine ORM, la sécurité et les API REST avec PHP 8+

  • Créer et configurer un projet Symfony 7 avec PHP 8.3 et Composer
  • Définir des routes et des contrôleurs avec les attributs PHP 8 natifs
  • Construire des templates dynamiques avec le moteur de rendu Twig
  • Concevoir un modèle de données avec Doctrine ORM et gérer les migrations
  • Implémenter les relations entre entités (OneToMany, ManyToMany) avec Doctrine
  • Construire et valider des formulaires Symfony avec les contraintes de validation
  • Mettre en place l'authentification et l'autorisation avec le composant Security
  • Sécuriser une API REST avec des tokens JWT via LexikJWTAuthenticationBundle
  • Exposer des ressources via API Platform 3 et personnaliser les endpoints
  • Injecter des services avec le conteneur de dépendances et l'autowiring Symfony
  • Écrire des tests unitaires et fonctionnels avec PHPUnit et le client de test Symfony
  • Appliquer les bonnes pratiques officielles Symfony sur un projet complet

  • Développeurs PHP souhaitant adopter Symfony 7 comme framework principal pour des projets web professionnels.

  • Maîtrise de PHP orienté objet (classes, interfaces, namespaces, traits).
  • Connaissances de base en HTML, SQL et utilisation du terminal.
  • Notions de Composer appréciées.

  1. 1

    Jour 1 matin — Installation, architecture et premiers contrôleurs

    • Présentation de Symfony 7 : philosophie, composants, LTS vs version courante, écosystème Flex
    • Nouveautés PHP 8.1/8.2/8.3 utiles dans Symfony : enums, readonly properties, fibers, attributs natifs, intersection types
    • Installation d'un projet Symfony 7 avec Composer et symfony CLI, structure des répertoires
    • Le noyau Symfony : HttpKernel, Request/Response, cycle de vie d'une requête
    • Environnements (dev/prod/test), variables d'environnement avec .env, configuration YAML
    • Web Profiler et Symfony Debugger : utilisation en développement
    • Routing avec attributs PHP 8 : #[Route], paramètres, requirements, valeurs par défaut, nommage
    • Contrôleurs : AbstractController, méthodes render(), json(), redirectToRoute()
    • TP : création du projet fil rouge (plateforme de gestion de conférences), configuration de l'environnement, premiers contrôleurs avec routing par attributs, exploration du Profiler
  2. 2

    Jour 1 après-midi — Twig, services et injection de dépendances

    • Twig 3 : syntaxe de base, variables, filtres, fonctions, structures de contrôle
    • Héritage de templates : block, extends, include, embed — organisation d'un layout
    • Assets avec AssetMapper (Symfony 7) : gestion des fichiers CSS/JS sans Webpack
    • Le conteneur de services Symfony : services privés vs publics, autowiring, autoconfiguration
    • Injection de dépendances : constructeur, attribut #[Autowire], tags de services
    • Création d'un service métier personnalisé et injection dans un contrôleur
    • Sessions, cookies, messages flash : gestion dans les contrôleurs et l'affichage Twig
    • TP : construction du layout Twig du projet fil rouge (header, footer, navigation), création d'un service ConferenceRepository factice, affichage d'une liste de conférences avec héritage de templates et messages flash
  3. 3

    Jour 2 matin — Doctrine ORM : entités, migrations et requêtes

    • Doctrine ORM dans Symfony 7 : configuration, connexion à la base de données (MySQL/PostgreSQL)
    • Entités et mapping : création avec make:entity, annotations vs attributs PHP 8 #[ORM\Entity]
    • Types de colonnes, clés primaires, colonnes auto-générées
    • Migrations : make:migration, doctrine:migrations:migrate, gestion du schéma en équipe
    • EntityManager : persist(), flush(), remove() — cycle de vie des entités
    • Repositories : méthodes par défaut (find, findAll, findBy, findOneBy), requêtes DQL personnalisées, QueryBuilder
    • DataFixtures : chargement de données de test avec DoctrineFixturesBundle et Faker
    • TP : création des entités Conference, Speaker et Comment du projet fil rouge avec leurs mappings, génération et exécution des migrations, chargement de fixtures avec données réalistes, affichage dynamique depuis la base de données
  4. 4

    Jour 2 après-midi — Relations Doctrine et formulaires

    • Relations entre entités : OneToMany, ManyToOne, ManyToMany, OneToOne — configuration et cascade
    • Chargement LAZY vs EAGER : impact sur les performances, résolution du problème N+1
    • Formulaires Symfony : FormType, champs, options, rendu Twig avec form_row/form_widget
    • Validation : contraintes (#[Assert\NotBlank], #[Assert\Email], #[Assert\Length]…), groupes de validation
    • Gestion des fichiers uploadés : VichUploaderBundle, stockage et affichage
    • CSRF protection dans les formulaires Symfony
    • TP : ajout des relations entre Conference, Speaker et Comment dans le projet fil rouge, création des FormType ConferenceType et CommentType avec validation, formulaire d'ajout de commentaire avec upload d'image, affichage des erreurs de validation en Twig
  5. 5

    Jour 3 matin — Sécurité : authentification et autorisation

    • Composant Security Symfony 7 : firewalls, providers, authenticators
    • Création d'un utilisateur avec make:user, UserInterface, PasswordAuthenticatedUserInterface
    • Authentification par formulaire de login : make:auth, LoginFormAuthenticator
    • Encodage des mots de passe : PasswordHasher, algorithmes recommandés
    • Autorisation : rôles (ROLE_USER, ROLE_ADMIN), hiérarchie des rôles, is_granted() en Twig
    • Contrôle d'accès par URL dans security.yaml vs attribut #[IsGranted] sur les contrôleurs
    • Voters personnalisés : ConferenceVoter, logique de contrôle d'accès métier fine
    • Remember me, logout, gestion des sessions sécurisées
    • TP : implémentation complète de l'authentification sur le projet fil rouge, création d'un espace admin protégé par ROLE_ADMIN, voter ConferenceVoter pour l'édition d'une conférence par son créateur, protection CSRF du formulaire de login
  6. 6

    Jour 3 après-midi — API REST avec API Platform 3 et JWT

    • API Platform 3 : installation, concepts (Resource, Operation, Provider, Processor)
    • Exposition d'une entité avec #[ApiResource] : opérations CRUD automatiques, formats JSON-LD/HAL/JSON
    • Personnalisation des opérations : filtres (SearchFilter, RangeFilter, OrderFilter), pagination, groupes de sérialisation
    • Sécurité des endpoints API : #[Security] sur les opérations, accès par rôle
    • JWT avec LexikJWTAuthenticationBundle : génération de clés, endpoint /api/login_check, cycle token
    • State Providers et State Processors personnalisés : logique métier dans l'API
    • Documentation automatique OpenAPI/Swagger avec API Platform
    • TP : exposition des ressources Conference et Comment via API Platform sur le projet fil rouge, configuration des groupes de sérialisation, ajout de filtres de recherche, sécurisation des endpoints POST/PUT/DELETE avec JWT, test des endpoints via Swagger U
  7. 7

    Jour 4 matin — Composants avancés : Messenger, Events et Cache

    • Messenger Component : bus de messages, handlers, transports (synchrone, Doctrine, Redis)
    • Cas d'usage : traitement asynchrone d'envoi d'email, modération de commentaires
    • Mailer Component : configuration SMTP/DSN, création d'emails HTML avec Twig, pièces jointes
    • Event Dispatcher : événements Symfony natifs, création d'un Event et d'un EventListener/EventSubscriber
    • Cache Component : PSR-6/PSR-16, adaptateurs (filesystem, Redis, Memcached), invalidation
    • HTTP Cache : en-têtes Cache-Control, ESI, Varnish (évocation)
    • Commandes console personnalisées : make:command, SymfonyStyle, planification avec cron
    • TP : mise en place d'un handler Messenger pour la modération asynchrone des commentaires du projet fil rouge, envoi d'email de notification avec Mailer + Twig, création d'un EventSubscriber sur la création d'une conférence, commande console de nettoyage des commentaires rejetés
  8. 8

    Jour 4 après-midi — Tests, bonnes pratiques et mise en production

    • Tests unitaires avec PHPUnit dans Symfony : configuration, conventions, mocks
    • Tests fonctionnels avec le client de test Symfony : simulation de requêtes HTTP, assertions sur la réponse
    • Tests d'API avec ApiTestCase d'API Platform : vérification des endpoints JSON
    • WebTestCase vs KernelTestCase : quand utiliser lequel
    • Bonnes pratiques officielles Symfony : structure des répertoires, nommage, séparation des responsabilités
    • Déploiement en production : variables d'environnement, APP_ENV=prod, cache:warmup, optimisation autoloader Composer
    • Docker pour Symfony : Dockerfile, docker-compose avec PHP-FPM, Nginx, PostgreSQL
    • Outils de qualité : PHP CS Fixer, PHPStan niveau 8, Rector pour les migrations de version
    • TP : écriture de tests unitaires pour le service de modération, tests fonctionnels des pages publiques et de l'espace admin du projet fil rouge, test de l'endpoint API Conference, configuration d'un docker-compose complet pour le projet, analyse statique avec PHPStan
    • Synthèse : récapitulatif du projet fil rouge end-to-end, ressources pour progresser (documentation officielle Symfony, SymfonyCasts, Forum PHP)

Ils nous font Confiance

Nos partenaires de confiance

Ministère des armées
Thalès
Dassault Systèmes
Ariane Group
EDF
SNCF
Orange Cyberdefense
Total
Société Générale
Ministère de l'Intérieur
Boston Consulting Group
Crédit Agricole
Capgemini
Sopra Steria
Ministère de l'économie
Bouygues Télécom
Devoteam
Imprimerie Nationale
Business France
Ordre National des Pharmaciens
Abeille Assurances
Macif
Service Public Fédéral Finances
ANFH
Bruxelles Formation
Atlas OPCO
Uniformation
Adeo
Positive Thinking Company
Sogelink
Septeo
HN Services
Infotel
Ercom
Neosoft
Klaxoon
Asus
Linkvalue
Suneris
Datadocké

Questions fréquentes

FAQ : Formation PHP framework Symfony - PHP8+ et Symfony 7+

  • Oui, mais la prise en charge d'une formation professionnelle par un OPCO dépend de votre opérateur de compétences, de votre branche d'activité et des critères de financement applicables. Ascent Formation vous accompagne dans l'identification des possibilités de financement adaptées à votre entreprise.

  • Une formation inter-entreprises réunit des participants issus de différentes organisations, tandis qu'une formation intra-entreprise est organisée pour les collaborateurs d'une même entreprise. Le format intra permet notamment d'adapter le contenu et les modalités aux besoins spécifiques de vos équipes.

  • Selon la formation proposée, il est possible de suivre une formation professionnelle à distance, en présentiel ou selon d'autres modalités disponibles. Consultez les informations de la session concernée ou contactez-nous pour connaître les formats possibles.

  • Oui, une formation professionnelle peut être adaptée aux objectifs, au niveau des participants et aux besoins opérationnels de votre entreprise. Ascent Formation vous propose des parcours personnalisés pour accompagner le développement des compétences de vos équipes.