TemmaCachePlugin
Présentation
Cette extension contient un plugin dont le but est de fournir des pages placées en cache par les vues qui gèrent la mise en cache. Cette fonctionnalité est supportée par les vues TemmaSmartyView (vue par défaut de Temma) et TemmaPhpView.
Le plugin joue deux rôles :
- Vérifier que la page courante répond aux critères de mise en cache. Si c'est le cas, une variable spécifique _temmaCacheable est définie, qui sera utilisée par le moteur de template pour mettre en cache la page HTML générée.
- Regarder si la page courante est déjà disponible en cache. Si c'est le cas, le contenu de la page est pris du cache et tous les traitements sont interrompus.
Installation
Pour installer cette extension, téléchargez-la, puis placez le fichier TemmaCachePlugin.php dans le répertoire controllers/ de votre site.
Une fois le fichier installé, il faut modifier le fichier de configuration temma.json afin de déclarer le plugin comme étant un "pré-plugin". Idéalement, il faut le placer en premier de la liste des plugins PRÉ :
{
"plugins": {
"_pre": [
"TemmaCachePlugin"
]
}
}
Configuration
Vous devrez aussi ajouter une section de configuration étendue, pour indiquer au plugin les URLs qui sont autorisées à mettre en cache. Il est possible de fournir une liste d'URL exactes (liste nommée url) et/ou une liste de préfixes d'URL (nommée prefix).
{
"x-temma-cache": {
"url": [
"/",
"/articles/liste"
],
"prefix": [
"/membre",
"/questions"
]
}
}
Par exemple, avec la configuration ci-dessus, les URLs suivantes seront mises en cache :
- /
- /articles/liste
- /membre/voir/1234
- /questions/liste
- /questions_reponses
Par contre, les URLs suivantes ne seront pas mises en cache :
- /articles/voir/5678
- /utilisateurs
Il est aussi possible de nommer des variables de session qui, si l'une d'elles est présente dans la session
courante d'un utilisateur, empêcheront l'utilisation du cache pour l'affichage de la page demandée.
Cela permet par exemple d'utiliser le cache pour les utilisateurs non identifiés, alors que les utilisateurs
identifiés (pour lesquels une certain variable est définie en session) récupèrent des pages regénérées
systématiquement.
{
"x-temma-cache": {
"sessionNoCache": [
"currentUser"
]
}
}
Notez que, par défaut, la variable de session _temmaNoCache provoque le même effet.