Formation Symfony “From the Book”
Publié le
20 sept. 2021
Formation en 3 jours (21 heures)
Objectifs
Faire acquérir aux participants les connaissances des mécanismes de base du framework PHP Symfony.
Description
- Le contenu est actualisé régulièrement afin de toujours couvrir la dernière version de Symfony.
- Le parcours pédagogique se présente sous la forme d'un projet d'application internet sur le thème de la pâtisserie, 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 pendant ces 3 jours 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
Les participants devront avoir un ordinateur avec un environnement LAMP comprenant de préférences les éléments suivants :
- 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.
Programme
Présentation
- Pourquoi un framework
- Apports de Symfony
- Communauté
Installation & configuration
- Composer
- Installer Symfony avec composer create-project
- Symfony Flex
- Symfony project architecture
Fichier de configuration
- Les possibilités de configuration de language : yml / xml / annotation, et pourquoi?
- L’environnement Symfony
- Recommandations Symfony & ce qui sera utilisé lors de la formation
Créer une première action
- Créer un contrôleur qui affiche une chaîne de caractères
- Créer le routing
Autoloading
- Composer autoloader
- PSR-4
Afficher la liste des gâteaux
- Utiliser PDO pour récupérer les gâteaux
- Les afficher simplement
Twig
- Présentation des instructions de base
- Intégration de Symfony
Conventions de nommage et emplacement de templates
- Créer un premier template pour lister les gâteaux
- Rendre ce template depuis le contrôleur
Assets (ajout de css)
- Que sont les assets?
- Utiliser webpack-encore pour compiler les assets
Debugging
- Debug toolbar
- dump()
Configuration de Symfony
- Paramètre, Paramètres fournis par Symfony (ex : kernel.root_dir)
- Comment récupérer un paramètre depuis un contrôleur
- Utiliser les paramètres Symfony pour configurer PDO depuis le contrôleur
Paramètres de routing
- Comment définir des paramètres de routing
- Comment récupérer ces paramètres depuis le contrôleur
- Créer une route display cake en utilisant un paramètre de routing
Twigs paths & urls
- Comment générer des paths & urls depuis un template twig
- Ajouter des liens dans les templates du toyproject
Refactoring du contrôleur
- Créer un singleton pour configurer PDO à l’intérieur du contrôleur
Twig : héritage & blocks
- Comment étendre un template
- Comment définir des blocks
- Créer un template de layout
- Etendre ce layout
HTTP status codes
- Qu’est-ce qu’un status code
- Comment configurer le response status code (renvoyer une exception http)
- Renvoyer un exception quand le gâteau n’est pas trouvé
- Détailler les messages d’erreur dans le profiler
Créer un gâteau (1ère Partie)
- Créer contrôleur, template et route
- Erreur calculée sur le navigateur: "le gateau avec l’id create n’existe pas"
Affiner le routing
- Ajouter des conditions (requirements)
Créer un gâteau (2ème Partie)
- Utiliser $_POST pour récupérer les données soumises
- Insérer des données manuellement avec PDO
- Ajouter une redirection vers la liste des gateaux quand le gâteau a été créé
- Quelques explications sur RedirectResponse
Requête Symfony
- Afficher des paramètres de la requête HTTP disponibles (explication de l’objet request)
- Comment avoir la requête dans le contrôleur
- Retirer les usages de $_POST et les remplacer par la requête
Session (pour ajouter un message flash)
- Décrire le session bag
- Comment ajouter des messages flash dans le session bag
- Utiliser le raccourci contrôleur addFlash()
- Afficher des messages flash depuis un template twig
Formulaires symfony (1ère partie)
- Comment les FormType sont composés
- Introduction au FormBuilder
- Créer un FormType de création de gâteaux avec des champs simples
- Comment instancier le formulaire depuis un contrôleur (createForm())
Rendre un formulaire symfony
- Fonctions twig pour formulaires
- Rendre notre FormType de création de gâteaux
Formulaires symfony (2ème partie)
- Passer la requête au formulaire
- Récupérer les données du formulaire
- Utiliser les données du formulaire pour les sauvegarder
Validation symfony
- Présentation
- Appliquer des règles de validation sur entités et champs de formulaires
- Utiliser la méthode isValid()
- Ajouter de la validation à notre formulaire
Doctrine
- Le gestionnaire d’entités (entity manager)
- Les ORM : un peu de théorie
- Qu’est-ce qu’une entité
- Comment mapper une entité (yml) configurer doctrine bundle pour le mapping yml
- Configurer la connexion avec la BDD
- Écrire dans la BDD,persist() & flush()
- Créer une entité gâteau
Classe, fichier de mapping
- Dans le contrôleur
Créer une entité gâteau à partir des données du formulaire
Enregistrer cette entité avec le gestionnaire d’entités
Remplacer le PDO
- Quelques mots sur DQL
- Migration de BDD (DoctrineMigration)
Formulaires symfony (3ème partie)
- Mapper les données du formulaire directement sur l’entité utilisation de la propriété data_class
Sécurité
- user providers
- password encoders
- firewall
- access_control (protéger certaines URL derrière un firewall)
- Vérification des droits (is_granted / voter)
- hiérarchie des rôles utilisateur
Internationalisation
- Mettre en place les traductions
- Les utiliser dans twig
- Utiliser des placeholders dans les traductions
- Traduction d’entités
Logs
- Monolog
Swiftmailer
Injection de dépendances
- Déclaration de services
- Présentation des events du kernel
Commandes symfony
- Composant console
Pour aller plus loin
- Behat
- Phpspec
- FosJsRouting
- Event Listener / Subscriber
- Dispatching d’events
- API REST / Sérialisation
- Bundles utiles recommandés par KNP Labs
Mais comment financer ma formation ?
Nous sommes datadockés, ainsi votre formation peut être prise en charge par votre OPCO en totalité (ou partiellement selon votre budget formation disponible) ! Si vous avez des doutes ou des besoins particuliers, vous pouvez contacter Amandine, notre responsable formations => hello@knplabs.com.
Adaptation des locaux et de la formation aux stagiaires en situation de handicap
Nantes :
Nos locaux se trouvant dans une secteur sauvegardé de Nantes et étant classés au titre des monuments historiques, il n’est pas possible d’aménager de rampe d’accessibilité ou d’ascenseur menant à nos locaux.
Ainsi, si l’un ou plusieurs stagiaires inscrits à l’une de nos formations sont en situation de handicap, nous louons une salle accessible en dehors de nos locaux dans Nantes afin que le/les stagiaires puissent bénéficier de la formation dans les meilleures conditions possibles.
Caen :
Les locaux sont de plein pieds, 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 pour toute autre demande spécifique, nous nous ferons un plaisir de vous accompagner pour répondre au mieux à vos besoins en formation.
Commentaires