Objectifs pédagogiques
- Décrire tous les concepts importants de Symfony
- Installer et afficher vos premières pages Web dynamiques avec Twig, en passant par les formulaires, la sécurité et le cache HTTP
- Utiliser et gérer tous les outils majeurs de Symfony afin de devenir entièrement autonome avec le framework.
Modalités et moyens pédagogiques
Formation délivrée en présentiel ou distanciel* (e-learning, classe virtuelle, présentiel à distance).
Le formateur alterne entre méthode** démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).
Variables suivant les formations, les moyens pédagogiques mis en oeuvre sont :
- Ordinateurs Mac ou PC (sauf pour les cours de l'offre Management), connexion internet fibre, tableau blanc ou paperboard, vidéoprojecteur ou écran tactile interactif (pour le distanciel)
- Environnements de formation installés sur les postes de travail ou en ligne
- Supports de cours et exercices
En cas de formation intra sur site externe à M2i, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires (équipements informatique...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué.
* nous consulter pour la faisabilité en distanciel
** ratio variable selon le cours suivi
Niveau requis
Avoir une bonne maîtrise du langage PHP. De plus, il est obligatoire de passer un test de niveau en amont ; si la note est inférieure à 5/10, il est déconseillé au stagiaire de suivre ce cours au profit du cours SYMF6-N2. Pour pouvoir suivre ce cours, il est impératif que chaque stagiaire se crée un identifiant (ID) sur le site de l'éditeur.
Public concerné
Développeurs PHP.
Programme
Jour 1 - Matin
Introduction
- Vue globale du projet Symfony, avec :
- Sa licence
- Ses versions
- Son rythme de sortie
- Sa direction globale
- Une liste de composants comme illustration de choses faisables avec le framework
- Environnement de travail et outil "Symfony" dédié ligne de commandes
- Création d'un projet Symfony
Découverte de Symfony
- Comment gérer le flux HTTP de requête / réponse
- Créer votre première page Web
- Affiner les routes de votre application avec des paramètres et des contraintes
- Bonnes pratiques concernant vos contrôleurs et leurs capacités
Introduction aux tests fonctionnels
- Introduction aux tests automatisés et aux tests fonctionnels
- Installation et présentation de l'outil "PHPUnit" pour exécuter vos tests automatisés
- Ecrire son premier test pour vérifier un code statut d'une page Web donnée
- Créer un "Data Provider" pour fournir des URL à analyser successivement dans un test
Jour 1 - Après-midi
Rendu graphique avec Twig
- Introduction à Twig
- Syntaxe primitive de Twig
- Utiliser la syntaxe utile "." pour extraire des valeurs d'une structure
- Transmettre un contexte à vos templates depuis vos contrôleurs
- Créer des itérations sur des données
- Tester certaines conditions pour formater vos pages Web
- Utiliser des techniques de layout avec de l'héritage et les inclusions de templates pour réduire la taille de vos templates
- Bonnes solutions pour trouver de l'aide pour vos templates à travers la console de Symfony ou le profileur Web
- Créer des URL dynamiques dans vos templates pour accéder à d'autres pages Web ou pour associer un asset (image, css, js…)
Assets Web avec Webpack Encore
- Brève introduction à Webpack Encore et Yarn
- Installation et configuration du bundle nécessaire
- Optimiser vos assets avec Webpack Encore
Jour 2 - Matin
Introduction à Doctrine
- Introduction à l'ORM de Doctrine et configuration de votre projet pour atteindre votre base de données
- Créer vos entités et leur configuration avec "Symfony Maker"
- Créer et appliquer des migrations pour gérer l'état de votre base de données
- Etablir et gérer les relations entre 2 entités
- Stocker des enregistrements en base de données en utilisant un contrôleur
- Récupérer des enregistrements de la base de données par des requêtes standards ou personnalisées
Jour 2 - Après-midi
Formulaires
- Introduction aux formulaires de Symfony
- Créer vos formulaires avec des configurations sur-mesure
- Extraire et gérer les données de vos formulaires
- Mettre en place des contraintes natives pour valider les données provenant de l'utilisateur
Jour 3 - Matin
Services
- Introduction à l'injection de dépendances et aux services de Symfony
- Utiliser la meilleure manière pour déterminer les services disponibles
- Utiliser "l'autowiring" pour injecter des dépendances dans un constructeur, un setter ou un attribut
- Vérifier la configuration de vos services
- Comprendre la limite entre les paramètres des services et les variables d'environnement
Jour 3 - Après-midi
Console
- Introduction aux commandes, et comment créer et optimiser des commandes interactives, des commandes batch...
- Ecrire sa première commande
- Utiliser des outils de "Symfony Style" pour vous faciliter la vie
- Déclarer et gérer des options et arguments dans votre commande
Jour 4 - Matin
Sécurité
- Introduction à l'authentification et à l'autorisation dans un projet Symfony
- Créer votre authentificateur sur-mesure grâce à "Security"
- Vérifier les rôles de vos utilisateurs pour les laisser accéder à certaines ressources de l'application
- Créer des voteurs personnalisés pour gérer de rares situations qui nécessitent une vérification particulière en PHP
Jour 4 - Après-midi
Évènements
- Introduction aux évènements et comment les propager dans un projet Symfony
- Créer des "subscribers" pour déclarer des "listeners"
- Liste d'évènements importants à connaître dans une application Symfony
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des exercices pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation ou une certification (M2i ou éditeur)
Les + de la formation
Cette formation combine les deux cours : SYMF6-N1 "Symfony 6 - Démarrer" et SYMF6-N2 "Symfony 6 - Maîtriser" et couvre tous les concepts importants de Symfony.
Les supports de cours sont en anglais.
En complément de la formation en présentiel, l'accès à la plateforme de révision en ligne pendant 1 mois permet d'associer différentes pratiques d'apprentissage, de tester vos compétences, de suivre votre progression et de rester en contact avec le formateur sur toute la durée du programme.