🏁 Premier récapitulatif

On dit souvent qu'un Container de services est une boite qui contient des objets. 

Or ce n'est pas vraiment le cas : il ne contient pas des objets, il possède des définitions qui lui permettent de créer des objets lorsqu'on les lui demande !

Ainsi, si le container possède 300 définitions, il n'instancie réellement que les 3 services qu'on lui demande : gros gain en performances !

Les notions importantes vues ici sont :

  1. Les Services : ce sont des objets que le Container va pouvoir construire pour nous dès qu'on les lui demandera. Ils sont identifiés par un "id" unique

  2. Les Définitions : elles permettent d'expliquer au Container comment construire un objet d'une classe donnée

  3. La méthode register() : elle permet d'aller un petit peu plus vite dans la création de nos services et de leurs Définitions

  4. Les paramètres : ce sont des valeurs que l'on identifie avec des clés afin de les centraliser puis de les utiliser dans nos Définitions

Les composants de Symfony : le container de services (DependencyInjection)

Acheter maintenantEn savoir plus

Introduction

  • Présentation de la formation 🔥
  • Les outils nécessaires au suivi de la formation
  • Mettre en place VSCode pour travailler !
  • Mise en place du projet
  • 🔍 Découverte du projet type2

Mise en place

  • Installons le composant symfony/dependency-injection
  • Les Définitions : on explique au Container comment construire nos objets4
  • Définition complexe : le OrderController
  • A la découverte de la magie des Références5
  • Appeler une méthode automatiquement lors de l'instanciation d'un service
  • Aller un peu plus vite avec la méthode register()2
  • Les paramètres : des valeurs pour faciliter la création de nos Définitions3
  • 🏁 Premier récapitulatif
  • ✅ Découverte du Container : Quizz #1

En route vers l'autowiring !

  • Donner des alias (noms secondaires) aux services
  • Utiliser les Alias pour demander au Container des Interfaces (Inversion de Dépendance)
  • Compilation du Container, notion de services publics / privés
  • Découverte de l'Autowiring3
  • Cumuler Autowiring et Arguments spécifiques1
  • ✅ En route vers l'autowiring : Quiz #2

Tirer profit de la compilation du Container

  • Découverte des CompilerPasses : mise en situation
  • Notre première CompilerPass (les Tags à la rescousse)2
  • 🏁 Deuxième récapitulatif3
  • ✅ Tirer profit de la compilation du Container : Quiz #3

Chargement de la configuration

  • Mieux écrire la configuration de nos services
  • Charger un fichier de configuration en PHP1
  • Utiliser des valeurs par défaut pour nos services
  • Charger un fichier de configuration YAML3
  • Automatisation de la configuration avec le concept InstanceOf1
  • Comprendre l'Autoconfiguration5
  • Utiliser l'option "bind" pour injecter des paramètres à nos services3
  • Charger toutes les classes d'un dossier grâce à l'option Resource22

Bonus et conclusion

  • Conclusion de la formation : merci et bravo à vous 👍👏👏7
  • BONUS : Augmenter les performances du Container grâce au Dumper ✨5