Le pipeline affichage_final
est un peu, pour une page complète, l’équivalent du pipeline recuperer_fond
pour une inclusion. Mais il y a quelques différences par rapport au cache et à l’accès au contexte.
Inclusion et pipeline recuperer_fond
La fonction recuperer_fond()
produit d’abord le calcul du fond avec son contexte. Si il y a un cache correspondant au fond avec le contexte demandé, il est directement utilisé.
Puis elle appelle le pipeline recuperer_fond
sur le résultat.
En conséquence, les modifications d’un fond opérées par le pipeline recuperer_fond
ne sont pas enregistrées dans le cache de SPIP, sauf éventuellement si l’appel du dessus est de la forme #INCLURE
auquel cas le HTML issu de recuperer_fond()
figure dans le cache de l’appelant.
Page principale et pipeline affichage_final
La page principale est produite au moyen d’un mécanisme spécial qui optimise le cache : le résultat est directement stocké en cache, avec un nom qui ne dépend que de l’URL et des variables de contexte présentes dans la query-string (voir le code).
Cela permet, par la suite, de pouvoir trouver le cache SANS interroger SQL, ce qui procure un beau gain en terme de performance et de charge serveur.
S’il n’y a pas de cache valide pour cette page principale, alors SPIP décode l’URL pour avoir le contexte complet de la page (Voir le code).
De ce fait, en l’état actuel du code (SPIP4), le pipeline affichage_final
ne reçoit pas le contexte.