Objectifs de formation
A l'issue de cette formation, vous serez capable de :
- Découvrir le framework Symfony 6 pour créer votre site Web
- Créer un nouveau projet Symfony 6, en partant de rien
- Décrire l'organisation structurée des répertoires / fichiers et y appliquer un pattern MVC
- Construire les premières pages Web avec le moteur de rendu Twig et le gestionnaire d'assets Webpack Encore
- Créer des formulaires Symfony et gérer la persistance d'objets via Doctrine.
Prérequis
Avoir une bonne maîtrise du langage PHP et de la POO (Programmation Orientée Objet). 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 PHP-IN ou PHP-PE (selon le résultat obtenu). Pour pouvoir suivre ce cours, il est impératif que chaque stagiaire se crée un identifiant (ID) sur le site de l'éditeur.
Les + de la formation
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.
Public concerné
Développeurs PHP.
Programme
Jour 1 - Rappels PHP pour Symfony
Quel EDI ?
Evolution de la POO (Programmation Orientée Objet) PHP
- Historique de la POO PHP
- PSR
Bases de la POO
- Qu'est-ce que la POO ?
- Anatomie d'une classe
- Types PHP
Concepts avancés de POO
- Héritage en POO
- Static et constantes
- Interfaces
- Classes abstraites
- Traits
- Méthodes magiques
Exceptions et erreurs
Relation entre les classes
- Héritage
- Implémentation
- Association
- Agrégation
- Composition
Espaces de noms
Autoload
Jour 2
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
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 3
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
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
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités, méthodes et moyens pédagogiques
Formation délivrée en présentiel ou distanciel* (blended-learning, 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 certains 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 informatiques...) 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
Modalités d’évaluation des acquis
- En cours de formation, par des contrôles de connaissances sous forme de QCM
Accessibilité de la formation
Le groupe M2i s'engage pour faciliter l'accessibilité de ses formations. Les détails de l'accueil des personnes en situation de handicap sont consultables sur la page Accueil et Handicap.
Modalités et délais d’accès à la formation
Les formations M2i sont disponibles selon les modalités proposées sur la page programme. Les inscriptions sont possibles jusqu'à 48 heures ouvrées avant le début de la formation. Dans le cas d'une formation financée par le CPF, ce délai est porté à 11 jours ouvrés.