Cache sur les rangées de contenu Polymod

Depuis Automne 4.0.2, le contenu XHTML produit par les rangées des modules polymod peuvent être mises en cache.

Ce cache concerne donc le contenu généré par le code XML présent dans les rangées à l'intérieur des tags block :

<block module="polymod-codename"> ... </block>

Voir les tags des rangées pour les modules polymod pour plus d'information sur ce tag.

Ce système de cache a été écrit pour permettre d'améliorer les performances de l'affichage des contenus générés par les rangées polymod (notamment pour des raisons de référencement) mais sans pour autant nuire à la fraicheur des données affichées à l'utilisateur. En conséquence, Automne invalidera automatiquement tout cache pour lequel des données ont été modifiées via l'administration d'Automne et qui sont employées sur une rangée donnée.

Vous avez 3 modes de fonctionnement :

Cache automatique :

Par défaut, toute rangée contenant un tag block relatif à un module polymod verra contenu mis en cache pour une durée de 24h.

Ce mode par défaut est valable pour les rangées ne contenant pas d'attribut cache au niveau du tag block, ou si cet attribut cache est à 1 :

<block module="polymod-codename" cache="1"> ... </block>

Par ailleurs, si le tag block contient du code PHP, le cache automatique sera obligatoirement désactivé.

La durée par défaut de 24h peut être modifié en changeant la valeur de la constante CACHE_MODULES_DEFAULT_LIFETIME dans la configuration d'Automne (fichier config.php).

Cache forcé :

Vous pouvez forcer une durée de cache en spécifiant une valeur en secondes dans l'attribut cache du tag block :

Exemple : cache d'une heure :

<block module="polymod-codename" cache="3600"> ... </block>

Dans le cas d'un cache forcé, si vous avez ajouté du code PHP dans votre rangée, vous pouvez spécifier au système de cache à quoi fait référence votre code PHP. Ainsi Automne pourra automatiquement invalider votre cache si la référence est modifiée. Le tag atm-cache-reference (voir les tags des rangées pour les modules polymod) permet de spécifier à quoi votre code fait référence.

Cache désactivé :

Vous pouvez forcer la désactivation du cache en spécifiant la valeur zéro (0) dans l'attribut cache du tag block :

<block module="polymod-codename" cache="0"> ... </block>

Dans tous les cas :

Le cache sera désactivé si des données POST sont présentes lors de l'appel de la page contenant cette rangée.

Le contenu du cache pour la rangée sera supprimé automatiquement par Automne si le contenu du ou des modules auquel elle fait référence est modifié (ajout - modification - suppression de données ou de catégories dans le ou les module(s)).

Le cache des modules polymod peut être entièrement désactivé sur l'ensemble d'Automne en passant à false la valeur constante CACHE_MODULES_DATAS dans la configuration d'Automne (fichier config.php).

Vous pouvez aussi nettoyer tout le cache via l'administration d'Automne, dans les paramètres serveur, onglet "Accès des fichiers" en cliquant sur le bouton "Reset du cache Polymod".

Voici un schéma général du fonctionnement :

Cache Polymod




Haut