La formation en détail
Objectifs
Grâce à cette formation, vous serez en mesure de gagner en productivité avec Symfony. Vous ferez un tour d’horizon de l’ensemble de ses fonctionnalités et maîtriserez, à l’issue de cette séance, des outils et concepts plus avancés tels que l’injection de dépendances, le cache, la sécurité et les tests.
Programme
Manipuler des services avec Symfony
- Qu’est-ce qu’un service ?
- Le principe et rappels SOLID
- Historique et fonctionnement du container
- Les services existants
- Déboguer le container en ligne de commande
- Utiliser l’injection de dépendance
Symfony et la sécurité
- Gérer et authentifier un utilisateur
- Sécuriser toute ou partie de son application
- Rôles et hiérarchies
- Des voters pour les rôles et des voters personnalisés
- Appliquer une stratégie de vote
Symfony et les performances
- PHP et les performances
- Configurer son application
- Le cache applicatif
- Le cache HTTP et les ESI
- Les reverse-proxy
- L’invalidation de cache
- Problématiques mobiles, éco-conception, performances & under/over fetching
Symfony et la soumission de données
- Recevoir des données en POST
- Valider les données manuellement
- Utiliser un validateur
- Créer un validateur
- Combiner des validateurs
- Utiliser des validateurs différents selon le contexte
- La validation à travers un formulaire
- Créer un formulaire simple
- Créer un formulaire ré-utilisable
- Créer des formulaires imbriqués
- Maîtriser la transformation des données de PHP vers HTML et HTML vers PHP
Les bonnes pratiques
- Formats de configuration
- Configuration du kernel, de index.php et de bootstrap.php
- Le MVP, les Coding Styles, les outils d’analyse statique
- Le SOLID, la loi de Demeter, KISS et autres acronymes
- Tester son code
- Gagner du temps avec MakerBundle
Initiation à Doctrine
- Doctrine ORM
- Le pattern Data Mapper
- Le pattern Unit of Work
- Le jargon Doctrine
- Configurer l’accès à la BDD
- Créer la BDD
- “Mapper” une entité
- Créer une entité à l’aide du générateur
- Créer les tables
- Persister des entités
- Récupérer des entités
- Plus de méthodes du repository
- Utiliser un repository maison
- Effectuer des requêtes sur mesure
- Exemple d’utilisation
Tests unitaires
- Les bons outils
- Tester une classe unitairement
Tests d’intégration
- Les bon outils
- Tester un comportement
Tests E2E
- Les bons outils
- Tester votre application de bout en bout
Les “tips and tricks” des Tilleuls
Pré-requis
Intermédiaire