Symfony – Développer des applications Web

Dernière mise à jour : 17 juillet 2023

Profitez de notre formation complète pour développer des applications Web avec PHP et le framework Symfony.
Vous comprendrez la philosophie des frameworks MVC, créerez et configurerez un projet Symfony, et découvrirez comment structurer vos applications en couches grâce au modèle MVC.
La formation couvre le développement d’une couche de persistance métier avec Doctrine 2, la conception de routage des requêtes HTTP, la création de vues interactives, et l’application d’une stratégie de sécurité efficace.
En outre, vous explorerez les évolutions prévues dans la dernière version STS de Symfony.

Objectifs pédagogiques


  • Comprendre la philosophie et les apports des frameworks MVC et plus particulièrement Symfony.
  • Mettre en place un environnement de développement
  • Créer un projet Symfony.
  • Configurer une application Symfony.
  • Découper une application en couche en suivant le modèle MVC et identifier le rôle de chaque élément.
  • Développer une couche de persistance métier avec Doctrine 2 : le framework de persistance de Symfony.
  • Concevoir le routage des requêtes HTTP avec les contrôleurs.
  • Créer des vues d’affichage et de saisie de données et construire des formulaires interactifs.
  • Maitriser les interactions entre les vues, les contrôleurs et le modèle.
  • Utiliser l’injection de dépendance entre les composants.
  • Appliquer une stratégie de sécurité efficace dans une applications Symfony.

Public concerné


Concepteurs/Développeurs, Architectes techniques, Chefs de projets.

Prérequis


Programme détaillé


Introduction aux frameworks MVC PHP (1 heure)

  • Qu’est-ce que MVC ?
    • Apports et avantages
  • La répartition des responsabilités dans une application PHP
    • Implémentation du modèle avec un ensemble de classes
    • Réalisation des vues avec les mécanismes de Templates PHP
    • Codage des contrôleurs pour l’aiguillage des flux

Présentation et introduction à Symfony (1 heure)

  • Historique de Symfony
    • Différentes versions du framework : Les évolutions
    • Comprendre le versioning de Symfony : Le versionning sémantique
    • Choisir sa version pour un projet
  • Architecture du framework
    • Les composants de base

Mettre en place un projet Symfony (2 heures)

  • Création d’un projet
    • Utilisation de Composer
    • Utilisation de l’installeur Symfony
    • Découverte de l’application générée
  • Paramétrage du serveur Web pour l’hébergement de l’application
    • Utilisation du serveur Web embarqué
    • Création et configuration d’un hôte virtuel
  • Configuration du framework pour l’utiliser dans ses applications
    • Liaison à la base de données
    • Les différents environnements : dev, test, prod
  • Travaux pratiques:
    • Installer une plateforme et un IDE de développement pour Symfony
    • Créer un projet d’application Symfony et explorer sa structure et sa configuration

Configuration de Symfony (1 heure)

  • Les fichiers de configuration
    • Répartition hiérarchique des fichiers
  • Les syntaxes de configuration
    • Syntaxes YAML, Annotations, XML et PHP
    • Faire un choix de syntaxe
  • Présentation de la console pour la génération des squelettes code de l’application
  • Travaux pratiques:
    • Comparaison des formats et choix pour le projet
    • Compléter la configuration du projet d’application

La manipulation des bases de données pour le modèle (5 heures)

  • Présentation des techniques de mapping objet/relationnel
    • Avantages et principes
  • Doctrine 2 : Le framework de manipulation de données de Symfony
    • Installer et configurer Doctrine 2 dans l’application
    • Les entités et le mapping sur les tables
  • Génération avec la console
    • Les différentes approches : Top-down, Bottom-Up
  • Utiliser l’EntityManager
  • Les repositories et le DQL
    • Personnalisation du repository pour les requêtes de sélection
    • Manipulation et syntaxe DQL
  • Le QueryBuilder
  • Travaux pratiques:
    • Création d’un schéma de données
    • Génération des entités et du mapping à partir du schéma de base de données
    • Codage de classes de manipulation des entités en implémentant les opérations CRUD
    • Exposition des fonctionnalités de manipulation de données sous forme de services

L’injection de dépendances pour les services applicatifs (3 heures)

  • Le principe de l’injection de dépendances
  • Le Service Container
    • Principe de fonctionnement et responsabilités
  • La déclaration de services dans Symfony
    • Les services automatiques
    • Déclaration explicite de services
  • Liaison entre les services
    • Injection par constructeur
    • Injection par méthode
    • Typage explicite des paramètres
    • Injection dans les contrôleurs
  • Travaux Pratiques
    • Création de services applicatifs pour les fonctionnalités d’accès aux données
    • Utilisation de services Symfony

Les contrôleurs et le routage des requêtes (4 heures)

  • Mécanisme de contrôleur frontal et de routage
  • Format et configuration des routes
    • Routage global dans l’application
    • La définition du routage selon les différents formats de configuration
  • Implémentation des contrôleurs
    • Récupération des informations de la requête
    • Interaction avec le modèle
    • Redirections internes et externes
    • Transmissions d’information et délégation aux vues
    • Injection de service dans les contrôleurs
  • Travaux pratiques :
    • Définition de la stratégie de routage dans l’application ainsi que son format de configuration
    • Génération des contrôleurs et des actions.
    • Ajustement du routage dans la configuration.
    • Implémentation des actions et lien avec les services d’accès aux données métiers

Les vues avec les Templates Twig (4 heures)

  • Présentation de Twig et de sa syntaxe
    • Instructions et expressions
  • Les notions de layout/views et de blocs
    • Organisation des fichiers
    • Principes de l’héritage de blocs
    • Composition de vues
  • Fonctionnalités avancées du langage
    • Structures conditionnelles et itératives
    • Les filtres et fonctions
  • Échange de données et interactions avec les contrôleurs
  • Travaux pratiques :
    • Création de vues Twig
    • Lien avec les contrôleurs pour l’échange de données

Les formulaires (4 heures)

  • Une librairie MVC pour créer les formulaires
  • Initialisation et affichage d’un formulaire
    • Les objets Form et FormBuilder
    • Les différents types de contrôle
  • Traitement et validation des données d’un formulaire
    • Le lien avec la couche modèle
    • Mise en place des contraintes de validation
    • Gestion des erreurs de validation et de leurs messages
  • Utilisation des thèmes de formulaire pour la personnalisation du rendu
  • Travaux pratiques:
    • Création de formulaire dans les vues nécessitant de la saisie de données
    • Implémentation de formulaires réutilisables
    • Exploration des différents types de champs
    • Ajouts de contraintes de validation sur les données saisies

La sécurité dans les applications Symfony (2,5 heures)

  • L’authentification
    • Les différentes techniques d’authentification et leur configuration dans l’application
  • Gestion des permissions utilisateurs
    • Utilisateur et rôles
    • Exploiter les fournisseurs d’utilisateurs
    • Le cryptage des mots de passe
  • Gestion des autorisations
    • Sécuriser les accès en fonction des rôles
  • Travaux pratiques:
    • Implémentation d’une stratégie de sécurité sur une partie de l’application
    • Mise en place de rôles applicatifs pour la répartition des permissions d’accès

Perspectives : La version STS en cours (0,5 heure)

  • Explication du principe de dépréciation
    • Le cycle dans Symfony
    • Savoir anticiper les changements d’API
  • Contraintes de portage entre les versions
  • Exploration des nouvelles fonctionnalités
  • Mettre en place la veille technologique
    • Surveiller les évolutions de version
    • Identifier la prochaine version LTS
    • Surveiller les évolutions fonctionnelles

Délais d'accès à la formation


Les inscriptions sont possibles jusqu'à 48 heures avant le début de la formation.

Dans le cas d'une formation financée par le CPF, ENI Service est tenu de respecter un délai minimum obligatoire de 11 jours ouvrés entre la date d'envoi de sa proposition et la date de début de la formation.

Modalités et moyens pédagogiques, techniques et d'encadrement


Formation avec un formateur, qui peut être suivie selon l’une des 3 modalités ci-dessous :

1 - Dans la salle de cours en présence du formateur.

2 - Dans l’une de nos salles de cours immersives, avec le formateur présent physiquement à distance. Les salles immersives sont équipées d’un système de visio-conférence HD et complétées par des outils pédagogiques qui garantissent le même niveau de qualité.

3 - Depuis votre domicile ou votre entreprise. Vous rejoignez un environnement de formation en ligne, à l’aide de votre ordinateur, tout en étant éloigné physiquement du formateur et des autres participants. Vous êtes en totale immersion avec le groupe et participez à la formation dans les mêmes conditions que le présentiel. Pour plus d’informations : Le téléprésentiel – notre solution de formation à distance.


Le nombre de stagiaires peut varier de 1 à 12 personnes (5 à 6 personnes en moyenne), ce qui facilite le suivi permanent et la proximité avec chaque stagiaire.

Chaque stagiaire dispose d’un poste de travail adapté aux besoins de la formation, d’un support de cours et/ou un manuel de référence au format numérique ou papier.

Pour une meilleure assimilation, le formateur alterne tout au long de la journée les exposés théoriques, les démonstrations et la mise en pratique au travers d’exercices et de cas concrets réalisés seul ou en groupe.

Modalités d'évaluation des acquis


En début et en fin de formation, les stagiaires réalisent une auto-évaluation de leurs connaissances et compétences en lien avec les objectifs de la formation. L’écart entre les deux évaluations permet ainsi de mesurer leurs acquis.

En complément, pour les stagiaires qui le souhaitent, certaines formations peuvent être validées officiellement par un examen de certification. Les candidats à la certification doivent produire un travail personnel important en vue de se présenter au passage de l'examen, le seul suivi de la formation ne constitue pas un élément suffisant pour garantir un bon résultat et/ou l'obtention de la certification.

Pour certaines formations certifiantes (ex : ITIL, DPO, ...), le passage de l'examen de certification est inclus et réalisé en fin de formation. Les candidats sont alors préparés par le formateur au passage de l'examen tout au long de la formation.

Moyens de suivi d'exécution et appréciation des résultats


  • Feuille de présence, émargée par demi-journée par chaque stagiaire et le formateur.
  • Evaluation qualitative de fin de formation, qui est ensuite analysée par l'équipe pédagogique ENI.
  • Attestation de fin de formation, remise au stagiaire en main propre ou par courrier électronique.

Qualification du formateur


La formation est animée par un professionnel de l’informatique et de la pédagogie, dont les compétences techniques, professionnelles et pédagogiques ont été validées par des certifications et/ou testées et approuvées par les éditeurs et/ou notre équipe pédagogique.

Il est en veille technologique permanente et possède plusieurs années d’expérience sur les produits, technologies et méthodes enseignés.

Il est présent auprès des stagiaires pendant toute la durée de la formation.