templeet
pix
corner_top pix


Gestion des caches
uncache

La fonction ~uncache() supprime le cache pour les pages passées en arguments.

Exemple :

// Supprime unepage.html du cache
uncache("/unepage.html")

// Supprime tout le cache
uncache("/")
uncachemask

Cette fonction permet d'effacer des fichiers du cache de page en fonction de masques de répertoires et de fichiers . Elle prend trois paramètres:

  • Le répertoire à partir duquel il faut effacer des fichiers
  • Le masque pour les répertoires
  • Le masque pour les fichiers

 Exemple pour effacer de tous les répertoires nommés thumbs les fichiers se terminant par .jpg:

~uncachemask("/","/^.*\/thumbs$/","/.*\.jpg$/") 
set_expiretime

Cette fonction permet de modifier la date d'expiration d'une page en cache (la valeur par défaut est fixée dans config.php).

Exemple :

// Le cache sera valable durant 2 heures
~set_expiretime(7200)

 

Cette fonction n'a aucun effet lorsque que le cache de page est configuré à la racine de Templeet ET que le système d'expiration des pages n'est pas utilisé ET que soit les pages dynamiques de Templeet ne sont pas appelées soit la page /templeet/expire.php n'est pas appelée périodiquement.

includewithcache

La fonction ~includewithcache() fait un ~include classique, mais en plus, il vérifie si cet include n'a pas déjà été caché. S'il n'est pas déjà présent en cache, il le crée pour une future utilisation.

uncache_include

La fonction ~uncache_include() supprime le cache pour les 'include' passés en arguments.

Exemple :

// Supprime tout le cache des 'include'
~uncache_include("/")   
set_includeexpiretime

Cette fonction permet de modifier la durée d'expiration par défaut de la page courante incluse avec includewithcache. 


Exemple :

// Le cache de includewithcache() sera valide durant 2 heures
~set_includeexpiretime(7200)

Par défaut cette valeur sera appliquée également aux pages incluses. Pour désactiver ce fonctionnement et utiliser la valeur par défaut pour les pages incluses il suffit de positionner dans le fichier templeet/config.php

$config['includecache_expiretime_inherit'] = 0;
La gestion du cache de pages

Lorsque l'on travaille avec un site dont le cache de page est à la racine, une fois qu'un page est en cache elle est appelé directement par Apache sans passer par Templeet.Il est donc nécessaire d'effacer les pages du cache pour pouvoir voir les mises à jour éventuelles.

Cette gestion peut se faire de deux manières:

  • Soit lors d'une mise à jour, l'outil de mise à jour est programmé pour effacer la ou les pages concernées par la mise à jour.
  • Soit Templeet est configuré pour gérer l'expiration des pages

La première méthode est la plus efficace mais également la plus difficile à mettre en œuvre puisqu'il faut programmer ses templates pour procéder à un effacement judicieux des pages en utilisant les fonctions uncache et uncachemask.

Pour utiliser la seconde méthode il faut avoir choisi à l'installation l'option Utilisation du système d'expiration de pages . Quand cette option est utilisée, à chaque appel d'une page d'ynamique de Templeet, en fonction du temps imparti restant au processus, Templeet va effacer du cache les pages arrivées à expiration.

Il est également possible de procéder à l'expiration des pages en appelant de manière périodique l'URL /templeet/expire.php avec le mot de passe en paramètre GET. Le mot de passe d'expiration se configure dans templeet/config.php avec le paramètre expirepassword.

Exemple:

http://www.example.com/templeet/expire.php?pass=monmotdepasse

 

Sous unix, pour faire une expiration de page toutes les 5 minutes, on pourra donc insérer dans un crontab une commande du type :

*/5 * * * * wget "http://www.example.com/templeet/expire.php?pass=monmotdepasse" -O /dev/null

 

A chaque appel de l'expiration, que ce soit par le biais d'une page dynamique dans Templeet ou bien par l'appel de expire.php, SEULES les pages arrivées à expiration sont effacées.

Le crontab n'a pas besoin de se trouver sur la machine hébergeant Templeet

Les deux méthodes de gestion du cache de page sont utilisables conjointement.

corner_bottom pix
pix