Plugin de caché


1Presentación

Temma puede gestionar automáticamente la caché de las páginas generadas por la vista Smarty.


2Configuración

Este plugin debe ser uno de los primerísimos pre-plugins en la cadena de ejecución.

En efecto, si la página solicitada ya está en caché, el plugin la devolverá y detendrá el procesamiento. Por lo tanto, no tiene sentido ejecutar pre-plugins que solo serían útiles en caso de que la página deba generarse.

Por otro lado, un plugin de autenticación usado para verificar que el usuario tiene derecho a acceder a la página (por ejemplo) debe colocarse antes en la cadena de ejecución.

Por lo tanto, deberás añadir una directiva en el archivo etc/temma.php (ver la documentación de configuración):

<?php

return [
    'plugins' => [
        // lista de pre-plugins
        '_pre' => [
            '\Temma\Plugins\Cache'
        ]
    ]
];

3Configuración avanzada

Es posible definir parámetros de configuración adicionales, especificándolos en una sección de configuración extendida:

<?php

return [
    'plugins' => [
        '_pre' => [
            '\Temma\Plugins\Cache'
        ]
    ],
    'x-temma-cache' => [
        // se usa para definir la fuente de datos (ver "dataSources")
        // por defecto, usa la fuente llamada "cache"
        'source' => 'memcache',
        // lista de URLs estrictas que se deben cachear
        'url' => [
            '/articles/list',
            '/pages/presentation',
        ],
        // lista de prefijos de URL que se deben cachear
        'prefix' => [
            '/documentation/',
            '/legal/',
        ],
        // desactiva la caché cuando esta variable de sesión (o una de estas variables de sesión) está definida
        'sessionNoCache' => 'noCache',
    ]
];
  • source: nombre de la fuente de datos a usar para almacenar las páginas en caché. Si no se completa este valor, el plugin buscará una fuente llamada cache.
  • url: lista de URLs estrictas que pueden cachearse. En este ejemplo, las páginas /articles/list y /pages/presentation se cachearán.
  • prefix: lista de prefijos de URL que pueden cachearse. En este ejemplo, todas las páginas cuya URL empiece por /documentation/ o /legal/ se cachearán.
  • sessionNoCache: nombre (o lista de nombres) de una variable de sesión cuya presencia con un valor no vacío desactiva la caché para la solicitud actual.

Cuando las directivas url y prefix no están definidas, es probable que todas las páginas se cacheen.


4Variable de plantilla

Cuando el plugin detecta que la página a la que se accede puede cachearse, define una variable de plantilla _temmaCacheable, asignándole el valor booleano true. Esta variable será usada por la vista Smarty, para cachear el código HTML generado antes de enviarlo al navegador.

Se recomienda encarecidamente no modificar este valor. Sin embargo, puedes acceder a él en modo lectura.