Plugin de cache


1Présentation

Temma peut gérer automatiquement la mise en cache des pages générées par la vue Smarty.


2Configuration

Ce plugin doit être l'un des tous premiers pré-plugins dans la chaîne d'exécution.

En effet, dans le cas où la page demandée est déjà en cache, le plugin la retournera et arrêtera les traitements. Il ne sert donc à rien d'exécuter des pré-plugins qui ne seraient utiles que dans le cas où la page doit être générée.

Par contre, un plugin d'authentification servant à vérifier que l'utilisateur a le droit d'accéder à la page (par exemple) devra être placé avant dans la chaîne d'exécution.

Il faudra donc ajouter une directive dans le fichier etc/temma.php (voir la documentation de la configuration) :

<?php

return [
    'plugins' => [
        // liste des pré-plugins
        '_pre' => [
            '\Temma\Plugins\Cache'
        ]
    ]
];

3Configuration avancée

Il est possible de définir des paramètres supplémentaires de configuration, en les spécifiant dans une section de configuration étendue :

<?php

return [
    'plugins' => [
        '_pre' => [
            '\Temma\Plugins\Cache'
        ]
    ],
    'x-cache' => [
        // sert à définir la sourcede données (cf. "dateSources")
        // par défaut, utilise la source nommée "cache"
        'source' => 'memcache',
        // liste des URLs strictes à mettre en cache
        'url' => [
            '/articles/liste',
            '/pages/presentation',
        ],
        // liste des préfixes d'URL à mettre en cache
        'prefix' => [
            '/documentation/',
            '/legal/',
        ]
    ]
];
  • source : Nom de la source de données à utiliser pour stocker les pages en cache. Si cette valeur n'est pas renseignée, le plugin cherchera une source nommée cache.
  • url : Liste des URLs strictes qui peuvent être mises en cache. Dans cet exemple, les pages /articles/liste et /pages/presentation seront mises en cache.
  • prefix : Liste des préfixes d'URL qui peuvent être mises en cache. Dans cet exemple, toutes les pages dont l'URL commence par /documentation/ ou /legal/ seront mises en cache.

Lorsque les directives url et prefix ne sont pas définies, toutes les pages sont susceptibles d'être mises en cache.


4Variable de template

Lorsque le plugin détecte que la page qui est en train d'être accédée peut être mise en cache, il positionne une variable de template _temmaCacheable, en lui donnant la valeur booléenne true. Cette variable sera utilisée par la vue Smarty, pour stocker en cache le code HTML généré avant de l'envoyer au navigateur.

Il est fortement déconseillé de modifier cette valeur. Vous pouvez toutefois y accéder en lecture.