Accueil > Tickets > Problème de compréhension

Ticket #183 - Problème de compréhension

Créé le samedi 30 janvier 2010 par ju3873

Assigné à :
Le ticket n’a été assigné à personne.

Bonsoir,

Bravo pour la documentation sur le cache. C’est une très bonne idée. Je n’imaginais pas qu’il y avait autant de mécanisme de cache que ça. En ce qui me concerne, j’avais surtout la connaissance du cache de squelettes. Et la différence entre le mode=calcul et le mode=recalcul : j’imaginais un changement de terme au cours des versions de SPIP... et que ça n’avait pas encore été renommé partout... bref.

J’ai lu un peu les premiers chapitres et j’ai du mal à comprendre ce qu’est le "cache des pages" notamment...

Mon cheminement au cours ma lecture :

En lisant "le cache des squelettes", je comprend que l’élément stocké dans le cache est le résultat de la compilation du squelette. Pour moi, il s’agit d’un code dépourvu de syntaxe SPIP. Et l’article m’indique en effet qu’il s’agit d’une page php. (la traduction de la syntaxe SPIP). OK.
A cet endroit, j’imagine que le code php contient aussi les requêtes SQL traduites des boucles... Je le suppose. Il faudrait que j’aille lire tous les chapitres sur le compilateur pour être sûr.

Ensuite, je lis la partie sur "le cache des pages". On m’indique qu’il s’agit "des pages demandées par les visiteurs". Là je me demande de quoi il s’agit. S’agit t-il du résultat de l’interprétation du PHP ? et donc de fichiers HTML 100% statiques. On me parle ensuite de leur sauvegarde dans des répertoires allant de 0 à f. Là, je m’interroge sur une telle découpe. S’agit il de limiter le nombre de fichiers stockés par répertoire pour une recherche plus efficace ? ou s’agit il de stocker une même page sous différentes versions (pour un visiteur anonyme, un visiteur authentifié, etc.). Il manque une explication sur ce 0 à f. A la limite, si cela est sans importance/conséquence, et que cette mention sert juste à indiquer que ces répertoires, sont aussi pour le cache des pages, alors le dire ou mettre une petite phrase du style "pour des raisons techniques que nous n’expliquerons pas ici"... qu’on ne se pose pas la question.

Ne faudrait-il pas faire un sommaire de cette partie qui explique en 2 ou 3 phrases, chaque type de cache. Un ou plusieurs schémas seraient également bienvenus. un peu plus détaillée que celui qu’on trouve sur Spip.net. On verrait par exemple la transformation du squelette en code php puis en page html et le stockage de chacune de ces interprétations dans les différents caches...

Je suggère... J’imagine bien évidemment tout le temps que cela peut prendre pour documenter une telle partie. Je me pose d’ailleurs une question : comment agir sur un chapitre rédigé. Pour corriger une coquille, une faute, ou suggérer une reformulation, proposer un schéma. Cela se fait-il par le biais des messages postable au dessous de chaque article ? ou faut-il créer un ticket. ou encore échanger par e-mail.

Bien à vous.

Exemple : Cache-des-pages

3 commentaires

  • Problème de compréhension date forum , par Matthieu Marcillaud

    Merci pour cet excellent retour.

    Je prends note des remarques et modifierais à l’occasion (ou quelqu’un d’autre).

    Pour répondre vite fait aux questions :

    • « le cache des pages », je ne savais pas trop comment le nommer, mais oui, c’est le résultat du cache d’un squelette couplé à un environnement donné (appel d’une URL ou d’un environnement donné, avec recuperer_fond() par exemple.) : on lance une évaluation du code PHP du squelette, avec les variables passées dans l’environnement, et on enregistre ce résultat en cache.
    • On l’enregistre par défaut dans 16 dossiers (0 à f), sinon il risque d’y avoir trop de fichiers dans un dossier, ce qui peut poser des problèmes (accès disques ou calculs de taille ? je sais pas exactement, si quelqu’un le sait, qu’il le dise :p)
    • le résultat de l’évaluation n’est pas forcément un fichier HTML statique : il peut être du JS (issu d’un fichier habillage.css.html appelé comme squelette SPIP avec un #HEADER particulier), du CSS, mais le plus souvent du HTML ; mais du HTML qui peut encore avoir du PHP dedans. Ce php étant généré par le code des #FORMULAIRE_ ou encore provenant de <?php ... ?> écrits directement dans les fichiers de squelettes. C’est pour cela qu’on peut écrire <?php $toto="#BALISE"; ?> mais c’est pas beau et plus personne ne fait ça hein :) Sauf cas exceptionnels.
    • il reste du PHP parce que tout ne peut pas être mis en cache, particulièrement les informations des formulaires et tout ce qu’on appelle balises dynamiques
    • n’est pas mis en cache ce qui est construit par le pipeline « affichage_final », qui est appelé après la lecture du cache de la page. (minus l’utilisation de plugins spécifiques fastcache ou expresso, mais ce sont des cas particuliers)
    • des graphiques, ici ou pour d’autres choses, j’aimerais bien. J’ai juste testé récemment les outils à disposition. J’ai trouvé que Draw de OpenOffice était réellement le plus simple et adapté (j’ai regardé Dia et Pencil pour FF aussi) avec des organigrammes.
    • pour participer, oui, il y a plein de moyens, et la liste de discussion programmer pour discuter, cf Notes sur cette documentation. Toute bonne volonté est bienvenue :)
  • Problème de compréhension date forum , par Matthieu Marcillaud

    tiens, il aime pas < ? php :)

  • Problème de compréhension date forum , par Matthieu Marcillaud

    ah, c’est mieux, c’était un bug du plugin Tickets (http://zone.spip.org/trac/spip-zone/changeset/34806)

Seules les personnes identifiées peuvent écrire des tickets ou commentaires.

Identifiez vous.