Objectifs
- Identifier les apports et décrire le fonctionnement des frameworks MVC
- Mettre en place un environnement de développement
- Créer un projet Symfony et mettre en place l’environnement de développement
- Développer une couche de persistance métier avec Doctrine 2
- Concevoir le routage des requêtes HTTP avec les contrôleurs.
- Créer des vues d’affichage et de saisie de données avec le moteur de template Twig
- Utiliser l’injection de dépendance entre les composants
- Appliquer une stratégie de sécurité efficace dans une applications Symfony
Prérequis
Une bonne connaissance du langage PHP, de HTML et CSS, ainsi que des notions de système de gestion de base de données relationnelles sont un plus.
Avoir suivi la formation Développement de sites Web Backend avec PHPou posséder les connaissances et compétences équivalentes
Programme
Introduction
- Objectifs
- Présentation de Symfony
- Prérequis à l’installation de Symfony
- Démonstration : Configuration du serveur web
- Présentation de Composer
- Démonstration : Installation de Composer et de cmder
- Présentation de PhpStorm
- Démonstration : Installation et configuration de PHPStorm
- Installation de Symfony
- Démonstration : Installation de Symfony
- Les répertoires d’un projet
- Utiliser Git avec Symfony
- Démonstration : Symfony et Git
- Enoncé du TP – Bucket-List : installation
Hello World
- Objectifs
- Les routes et les contrôleurs
- Démonstration : Création d’un contrôleur et d’une route
- Introduction au moteur de templates Twig
- Démonstration : Affichage d’un fichier Twig
- Enoncé du TP – Bucket-List : Hello world
Vues et Twig
- Objectifs
- Les délimiteurs
- Les balises
- Démonstration : Délimiteurs et balises
- Les filtres
- Démonstration : Filtres
- Blocs, héritage et inclusion
- Démonstration : Blocs, héritage et inclusion
- Gestion des assets et des URLs
- Démonstration : Gestion des assets et des URLs
- Passer des variables à la vue
- Démonstration : Passage de variables à la vue
- Les attaques XSS
- Démonstration : Les attaques XSS
- Enoncé du TP – Bucket-List : Twig
Routage et contrôleurs
- Objectifs
- Les routes
- Les annotations des routes
- Les paramètres d’annotations de routes : l’URL
- Les requirements et noms des routes
- Les routes et la console
- Les contrôleurs
- Démonstration : Les routes et les contrôleurs
- Le débogage
- Démonstration : Le débogage
- Enoncé du TP – Bucket-List : routes et contrôleurs
Données et Doctrine
- Objectifs
- Les problèmes rencontrés avec les données
- La configuration de Doctrine
- Les entités
- Démonstration : Créer une entité
- L’EntityManager
- Démonstration : L’EntityManager
- Le Repository
- Démonstration : Repository
- DQL et QueryBuilder
- Démonstration : DQL et QueryBuilder
- Enoncé du TP – Bucket-List : les données avec Doctrine
Formulaires
- Objectifs
- Présentation des formulaires
- Classe de formulaire
- Démonstration : Générer une classe de formulaire
- Affichage d’un formulaire
- Affichage d’un formulaire sous Twig
- Démonstration : Afficher un formulaire
- Traitement d’un formulaire
- Démonstration : Traiter un formulaire
- Validation des données
- Démonstration : Valider un formulaire
- Sécurité : les attaques CSRF
- Démonstration : Se protéger des attaques CSRF
- Enoncé du TP – Bucket-List : formulaires
Doctrine : les relations entre entités
- Objectifs
- La relation OneToMany / ManyToOne
- La relation ManyToMany
- La relation OneToOne
- Les relations entre objets PHP
- Les relations avec Doctrine
- Démonstration : Définir des relations entre entités
- Récupérer une entité associée à une autre
- Démonstration : Récupérer des entités associées
- Manipuler les entités associées
- Démonstration : Manipuler les entités associées
- Enoncé du TP – Bucket-List : relations entre entités
Utilisateurs et sécurité
- Objectifs
- Le système de sécurité de Symfony
- Les étapes pour créer un système d’authentification
- Étape 1 : entité utilisateur
- Étape 2 : système d’authentification
- Étape 3 : formulaire d’inscription
- Démonstration : Créer le système d’authentification
- Autorisations et rôles
- Démonstration : Authentification de l’utilisateur
- Autres fonctionnalités de sécurité
- Démonstration : Autres fonctionnalités de sécurité
- Enoncé du TP – Bucket-List : utilisateurs
Services
- Objectifs
- Présentation des services
- Démonstration : Créer un service
- Injection de dépendances et conteneur de services
- Démonstration : Ajouter des dépendances
- Enoncé du TP – Bucket-List : Service
Déploiement
- Objectifs
- Les environnements Symfony
- Les migrations
- Démonstration : Les environnements Symfony et les migrations
- Déploiement
- Démonstration : Déploiement
- Pour aller plus loin
- Enoncé du TP – Bucket-List : déploiements