Carnet Wiki

A propos du compilateur

En complément à la doc sur spip.net, voici 2 schémas du fonctionnement global des 2 niveaux du cache, puis quelques questions et réponses.

Voir aussi : Calcul du sessionnement des caches.


Question :
-  Où est lu le squelette et où est lancé sa compilation (sa transformation en PHP), pour voir si on peut pas avoir un pipeline pour modifier le vrai squelette de départ avant sa compilation ?

Réponse (mm) :
-  C’est le phraseur. La lecture se fait dans public_composer_dist() ligne 80


Question :
-  Où est envoyé l’ENV pour calculer la page, pour voir si on peut ajouter un pipeline qui permet de modifier l’ENV *avant* que ça génère le HTML final ?
Exemple d’utilisation : je cherche si le squelette demandé (pas le réel fichier final trouvé, le fond demandé avant styliser) est du genre /prive/objets/liste/xxxx.htmlet dans ce cas je cherche des infos, et si ça répond à mes critères, j’ajoute "par" => "trucmuche" dans le contexte par défaut.

Réponse :
-  L’env, c’est plutôt du côté de public_parametrer_dist appelé par public_produire_page_dist() lui-même appelé dans assembler()
avec $GLOBALS['contexte'] = calculer_contexte();

Alors :
-  le calcul du PHP en HTML se fait ligne 128 de parametrer.php
-  mais le nom du cache est défini bien avant
-  or si on change l’ENV, il ne faut pas prendre le même cache
-  pour la page complète c’est dans assembler()
-  pour les inclusions c’est dans inclure_page() => ligne 259

Attention : le fichier de cache HTML est indissociable du contexte qui a servi pour le calculer puisque son nom de fichier lui-même est défini à partir du nom du squelette mais aussi à partir du contexte. Dés lors, si on modifie le contexte qui sert à générer un cache donné, ce ne sera plus le même fichier de cache.

Le nom du fichier de cache php est calculé par calculer_nom_fonction_squel().


Fil de discussion autour de l’ajout d’un pipeline permettant d’insérer des critères dans des boucles de squelettes précis :
http://archives.rezo.net/archives/spip-dev.mbox/GOT6AS42Z4OVQ63RM7JVIXTEORZLCWAZ/

JLuc , RastaPopoulos - Mise à jour :29 novembre 2018 à 13h26min