ESI et SSI en Symfony : Améliorez la performance de votre application
Qu'est ce que Edge Side Include (ESI) ?
Les Gateway caches sont un moyen efficace d’améliorer les performances de votre site Web. Cependant, ils présentent une limitation : ils ne peuvent mettre en cache que des pages entières.
Si une page contient des sections dynamiques, comme le nom d’utilisateur ou un panier d’achat, cela peut poser problème. Heureusement, Symfony propose une solution à ces situations grâce à une technologie appelée ESI (Edge Side Includes).
ESI permet à des sections spécifiques d’une page d’avoir une stratégie de mise en cache différente de celle de la page principale. Cela signifie que vous pouvez avoir des parties de votre page qui sont mises à jour plus fréquemment que d’autres, tout en bénéficiant des avantages de la mise en cache.
Comment configurer Edge Side Include (ESI) sur Symfony ?
Méthode 1 : Référence par contrôleur
{{ render_esi(controller('App\\Controller\\NewsController::latest', { 'maxPerPage': 5 })) }}
Méthode 2 : Référence par URL
{{ render_esi(url('latest_news', { 'maxPerPage': 5 })) }}
Ces deux méthodes vous permettent d’inclure du contenu dynamique dans votre page tout en bénéficiant des avantages de la mise en cache.
Qu'est ce que Server Side Include (SSI) ?
Tout comme l’ESI, le SSI peut être employé pour gérer la mise en cache HTTP de fragments spécifiques d’une réponse. La distinction majeure est que le SSI est directement reconnu par la majorité des serveurs Web, tels qu’Apache et Nginx.