Victor P. - April Marine
« La formation répondait tout simplement à mon besoin. Merci pour votre accueil ! »
Faire acquérir aux participants les connaissances des mécanismes du framework du/des différent(s) module(s) choisi(s).
Le contenu est actualisé régulièrement afin de toujours couvrir la dernière version de Symfony ainsi que des composants des modules.
Le parcours pédagogique se présente sous la forme d'un projet d'application internet réalisé par chaque participant. Des travaux pratiques ont lieu tout au long de la formation, qui mènent progressivement les participants à corriger leurs erreurs.
L'accent est mis sur les bonnes pratiques.
Le formateur distribuera les supports de la formation en format électronique à la fin de la formation.
D'autre part, le travail donnera lieu à la création d'une application web versionnée étape par étape. Chaque participant est invité à garder sur sa machine le code du projet de formation, qu’il aura rédigé lui-même avec l’aide du formateur, car ce code pourra servir de base technique pour de futurs projets.
Afin de pouvoir profiter pleinement de la formation, les participants devront impérativement avoir une expérience professionnelle préalable dans les domaines suivants :
Les participants devront avoir un ordinateur avec les droits admin, leur permettant de faire les exercices proposés tout au long de la formation, avec un environnement LAMP comprenant de préférence les éléments suivant :
Il est conseillé de permettre aux participants d'utiliser un éditeur de texte avec lequel ils se sentent le plus à l'aise afin de se concentrer au maximum sur la formation. Il n'est pas nécessaire d'installer Symfony, cette partie sera couverte pendant la formation.
Plus généralement, si la formation se déroule dans les locaux du client, il est demandé qu'une salle permettant d'accueillir l'ensemble des participants ainsi que le formateur soit réservée pendant l'intégralité de la durée de la formation. Un moyen de présentation écran (projecteur ou téléviseur plat de grande taille) devra être présent dans cette salle afin de permettre aux participants de visualiser l'écran du formateur. Un paperboard ou tableau effaçable et une connexion internet seraient également appréciés.
Nantes:
Nos locaux se situant dans un immeuble construit en 2023, il répond ainsi aux normes d'accessibilité aux personnes à mobilité réduite, nous sommes situés au premier étage avec ascenseur.
Caen:
Les locaux sont de plain-pied, l’accès par l’arrière du bâtiment est possible pour les publics en situation de handicap.
N’hésitez pas à nous contacter, nous nous ferons un plaisir de vous accompagner pour répondre au mieux à vos besoins pour votre demande de formation.
Formulaires Symfony & validation - 12H
Construire des formulaires
Type simple
Type collection
Type personnalisé
Rendering
Templating
Passer des Options aux Formulaires
Valider la saisie d’un formulaire
Événements liés au formulaire
Mappeur de données
Transformateur de données
Extension du type de formulaire
Protection CSRF
Architecture hexagonale - 21H
Pourquoi ?
Domaine / Application / Infrastructure
Deptrack
Principes SOLID
Mettre à jour l’architecture du projet Symfony
Comment traiter Doctrine et les entités
Tirer profit des alias de services
Exemples avec les répertoires
Comment traiter le composant sécurité
Le modèle de Bus de commande
Étendre le domaine avec des événements
Mailer - 2H
Configuration
Transport
Création et envoi de messages
Addresses email
Message Headers
Message Content
Twig et CSS contenu
Embedding Images
Embedding CSS
Events Mailer
Brouillons Emails
Développement & Debbuging
Désactiver le delivery
Toujours envoyer à la même adresse
Comment tester la distribution des e-mails
Templating TWIG - 4H
Rendering un template
Dans un controller
Dans un service
Rendering un Template directement d’une route
Manager assets
Webpack à nouveau
L’app variable
Debugging un template
Les Dump Twig Utilities
Linting twig template
Reutiliser des template contents
Héritage et layout template
Including Templates
Embedding Controllers
Twig extensions
Common extensions
Créer des custom extensions
REST API avec Sf - 14H
Requêtes / Réponses
Réponse JSON
Status code
Stratégie de nommage des routes
Headers à prendre en compte
Documentation avec Open API
Validation de schéma JSON
Sérialisation
Filtrer
Trier
Paginer
Compromis avec les Méta-librairies
EasyAdminBundle
API Platform
Mise à jour des versions de Symfony - 2H
Observations du projet
Mise en place d'un environnement reproductible
Audit de la stack de tests
Nettoyage du code
Etat des dépendances
Créer une feuille de route
PHP Stan
Mise en place d'un workflow de mise à jour des dépendances
Itérer sur les mises à jour
Pièges communs qui peuvent bloquer une mise à jour
Définir une stratégie à long terme pour mettre régulièrement à jour les dépendances
Doctrine - 7H
Migrations
Exécuter une migration / Revenir à une ancienne migration
Les associations / relations de Doctrine
Les associations / relations de Doctrine
Fixtures
Requêtes d’Objets
Expression builder
Problème N+1
Tester un repository Doctrine
Tester un repository Doctrine
Configuration
Validation des objets
Les extensions Doctrine
Récupération automatique des objets (ParamConverter)
Types personnalisés
Sécurité - 14H
L’Utilisateur
Hiérarchie des rôles
User Provider
Le Pare-feu
Authentificateurs
Formulaire de connexion
Json login
Http Basic
Authentificateurs personnalisés (Cookie Http uniquement)
JWT
Encoder avec une passphrase
Encoder avec une paire de clés RSA
Encodage du mot de passe
Encoder automatiquement le mot de passe d’un utilisateur
Migrer le mot de passe d’un utilisateur vers une autre méthode de cryptage
Evénements de sécurité
Déconnexion
Contrôle d’accès
Messenger - 21H
Création d’un gestionnaire de messages
Envoi des messages
Configuration des transports
Synchrone / Asynchrone
Acheminement des messages vers un transport
Consommation des messages
Tentatives et échecs
Middlewares
Étendre Messenger
Traitement de plusieurs bus
Mercure 7h
Installation & Configuration
Usages basiques (Publication / Souscription)
Debugging
Discovery
Autorisation
Tests
Dispatch asynchrone
Console - 4h
Behat avec friends-of-behat/symfony-extension - 7h
Les bonnes pratiques pour garder un projet à jour - 2h
Dockerizer un projet Symfony - 4h
API GraphQL avec Symfony - 7h
« La formation répondait tout simplement à mon besoin. Merci pour votre accueil ! »
« Merci à Antoine, c'était top d'apprendre React avec toi. »
« GG à Antoine pour la formation, ça faisait plaisir de le revoir hors du contexte Yousign ! »