Mathieu Desnouveaux

Le lazy-loading est plus que vous ne le pensez !

Exploration des 4 patterns et cas d'usage avancés avec PHP 8.4, Symfony et Doctrine

Cette sketchnote représente la conférence 'Le lazy-loading est plus que vous ne le pensez !' présentée par Baptiste Leduc lors de l'AFUP Day Lille le 16 mai. En haut, le titre 'Lazy Loading' est affiché en gros caractères avec le sous-titre 'Charger les données quand on en a besoin'. À gauche, des illustrations représentent '4 Patterns' avec des icônes pour 'Initialization', 'Value Holder', 'Virtual Proxies', et 'Ghost Object'. Au centre, des annotations comme 'Intégré à PHP 8.4' sont illustrées. À droite, des icônes représentent 'Usages' avec 'Injection de dépendance chez Symfony' et 'Entité Doctrine'. En bas, des icônes illustrent 'Cas concret PIM' avec 'Retour des produits par API', 'Les appels sont exécutés en tâche de fond', 'Bloquant uniquement si on accède réellement aux données immédiatement', 'Un listener charge les données', 'Chargement asynchrone avec HTTP client', et 'Batch des requêtes multiples'.

Cette sketchnote a été réalisée lors de l'AFUP Day Lille 2025. Elle illustre la présentation "Le lazy-loading est plus que vous ne le pensez !" donnée par Baptiste Leduc, qui explore en profondeur les mécanismes et patterns du lazy-loading au-delà des concepts basiques.

Contenu de la présentation

Baptiste Leduc dévoile 4 patterns fondamentaux du lazy-loading : Initialization (initialisation à la demande), Value Holder (conteneur de valeur), Virtual Proxies (proxies virtuels), et Ghost Object (objet fantôme). Chaque pattern répond à des besoins spécifiques d'optimisation du chargement des données.

La présentation met l'accent sur l'intégration native à PHP 8.4 et les usages concrets dans l'écosystème Symfony. L'injection de dépendance chez Symfony et les entités Doctrine exploitent ces patterns pour optimiser les performances applicatives.

Un cas concret PIM (Product Information Management) illustre l'implémentation avancée : retour des produits par API avec exécution des appels en tâche de fond, chargement asynchrone via HTTP client, et système de batch pour les requêtes multiples. Le système ne bloque que si l'accès aux données est immédiatement requis, optimisant ainsi les performances globales.

Points clés à retenir

  • 4 patterns essentiels : Initialization, Value Holder, Virtual Proxies, Ghost Object pour différents cas d'usage
  • PHP 8.4 natif : Intégration native du lazy-loading dans le langage
  • Écosystème Symfony : Usage dans l'injection de dépendance et les entités Doctrine
  • Chargement asynchrone : HTTP client avec système de batch et tâches de fond
  • Optimisation intelligente : Blocage uniquement lors d'accès immédiat aux données
Thèmes:
🚀 Performance 🐘 PHP 🏗️ Architecture
Événement:
🎤 AFUP Day