Symfony Modules complémentaires

Bon à savoir

Objectifs de la formation

Faire acquérir aux participants les connaissances des mécanismes du framework du/des différent(s) module(s) choisi(s).

Description

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.

Matériel pédagogique fourni

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.

Pré-requis

Afin de pouvoir profiter pleinement de la formation, les participants devront impérativement avoir une expérience professionnelle préalable dans les domaines suivants :

  • développement PHP orienté objet
  • utilisation d'une base de données relationnelle
  • prérequis spécifiques à déterminer selon le(s) module(s) choisi(s)

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 :

  • Une connexion internet permettant l'installation d'extensions PHP et de paquets depuis packagist et le travail en toute aisance (si formation hors de nos locaux)
  • Un IDE maîtrisé (PHPStorm, SublimeText, VSCode, ...)
  • Un shell UNIX
  • Une version de PHP actuellement supportée (https://www.php.net/supported-versions.php)
  • Git installé (utile pour des dépendances de composer)
  • Un serveur MySql/MariaDB par personne
  • Les droits d'administrateur sur la machine

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.

Adaptation des locaux aux stagiaires en situation de handicap

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.

Les modules

  1. Formulaires Symfony & validation - 12H

    1. Construire des formulaires

    2. Type simple

    3. Type collection

    4. Type personnalisé

    5. Rendering

    6. Templating

    7. Passer des Options aux Formulaires

    8. Valider la saisie d’un formulaire

    9. Événements liés au formulaire

    10. Mappeur de données

    11. Transformateur de données

    12. Extension du type de formulaire

    13. Protection CSRF

  2. Architecture hexagonale - 21H

    1. Pourquoi ?

    2. Domaine / Application / Infrastructure

    3. Deptrack

    4. Principes SOLID

    5. Mettre à jour l’architecture du projet Symfony

    6. Comment traiter Doctrine et les entités

    7. Tirer profit des alias de services

    8. Exemples avec les répertoires

    9. Comment traiter le composant sécurité

    10. Le modèle de Bus de commande

    11. Étendre le domaine avec des événements

  3. Mailer - 2H

    1. Configuration

      1. Transport

    2. Création et envoi de messages

      1. Addresses email

      2. Message Headers

      3. Message Content

    3. Twig et CSS contenu

    4. Embedding Images

    5. Embedding CSS

    6. Events Mailer

    7. Brouillons Emails

    8. Développement & Debbuging

    9. Désactiver le delivery

    10. Toujours envoyer à la même adresse

    11. Comment tester la distribution des e-mails

  4. Templating TWIG - 4H

    1. Rendering un template

      1. Dans un controller

      2. Dans un service

      3. Rendering un Template directement d’une route

    2. Manager assets

      1. Webpack à nouveau

      2. L’app variable

    3. Debugging un template

      1. Les Dump Twig Utilities

      2. Linting twig template

    4. Reutiliser des template contents

      1. Héritage et layout template

      2. Including Templates

    5. Embedding Controllers

    6. Twig extensions

    7. Common extensions

    8. Créer des custom extensions

  5. REST API avec Sf - 14H

    1. Requêtes / Réponses

      1. Réponse JSON

      2. Status code

    2. Stratégie de nommage des routes

    3. Headers à prendre en compte

    4. Documentation avec Open API

    5. Validation de schéma JSON

    6. Sérialisation

    7. Filtrer

    8. Trier

    9. Paginer

    10. Compromis avec les Méta-librairies

      1. EasyAdminBundle

      2. API Platform

  6. Mise à jour des versions de Symfony - 2H

    1. Observations du projet

    2. Mise en place d'un environnement reproductible

    3. Audit de la stack de tests

    4. Nettoyage du code

    5. Etat des dépendances

    6. Créer une feuille de route

    7. PHP Stan

    8. Mise en place d'un workflow de mise à jour des dépendances

    9. Itérer sur les mises à jour

    10. Pièges communs qui peuvent bloquer une mise à jour

    11. Définir une stratégie à long terme pour mettre régulièrement à jour les dépendances

  7. Doctrine - 7H

    1. Migrations

      1. Exécuter une migration / Revenir à une ancienne migration

    2. Les associations / relations de Doctrine

      1. Les associations / relations de Doctrine

    3. Fixtures

    4. Requêtes d’Objets

      1. Expression builder

      2. Problème N+1

    5. Tester un repository Doctrine

      1. Tester un repository Doctrine

    6. Configuration

    7. Validation des objets

    8. Les extensions Doctrine

    9. Récupération automatique des objets (ParamConverter)

    10. Types personnalisés

  8. Sécurité - 14H

    1. L’Utilisateur

    2. Hiérarchie des rôles

    3. User Provider

    4. Le Pare-feu

    5. Authentificateurs

      1. Formulaire de connexion

      2. Json login

      3. Http Basic

      4. Authentificateurs personnalisés (Cookie Http uniquement)

    6. JWT

      1. Encoder avec une passphrase

      2. Encoder avec une paire de clés RSA

    7. Encodage du mot de passe

      1. Encoder automatiquement le mot de passe d’un utilisateur

      2. Migrer le mot de passe d’un utilisateur vers une autre méthode de cryptage

    8. Evénements de sécurité

    9. Déconnexion

    10. Contrôle d’accès

  9. Messenger - 21H

    1. Création d’un gestionnaire de messages

    2. Envoi des messages

    3. Configuration des transports

      1. Synchrone / Asynchrone

      2. Acheminement des messages vers un transport

    4. Consommation des messages

    5. Tentatives et échecs

    6. Middlewares

    7. Étendre Messenger

    8. Traitement de plusieurs bus

  10. Mercure 7h

    1. Installation & Configuration

    2. Usages basiques (Publication / Souscription)

    3. Debugging

    4. Discovery

    5. Autorisation

    6. Tests

    7. Dispatch asynchrone

  11. Console - 4h

  12. Behat avec friends-of-behat/symfony-extension - 7h

  13. Les bonnes pratiques pour garder un projet à jour - 2h

  14. Dockerizer un projet Symfony - 4h

  15. API GraphQL avec Symfony - 7h

Témoignages

Victor P. - April Marine

« La formation répondait tout simplement à mon besoin. Merci pour votre accueil ! »

Valentin C. - Web ID

« Merci à Antoine, c'était top d'apprendre React avec toi. »

Gabriel P. - Web ID

« GG à Antoine pour la formation, ça faisait plaisir de le revoir hors du contexte Yousign ! »

Ils recommandent nos formations