Pregunta

Me gustaría ir un poco más profundo en Smarty almacenamiento en caché, así que tengo algunas preguntas sencillas ...

  1. Para manipular la invalidación de caché Quiero saber qué directorio Smarty está almacenando en su caché. Por ejemplo, todas las páginas en caché relacionados con user_id=123 que quieren almacenar a cache/users/123/. Donde cache es Smarty dir el almacenamiento en caché. ¿Cómo puedo saber Smarty para almacén de caché relacionados con user_id=123 en cache/users/123/? Smarty voluntad almacén de caché de sub-plantillas en este directorio también?

  2. ¿Hay alguna recomendación sobre la limpieza de caché en este directorio? Creo que la simple eliminación de archivos del directorio pueden causar algunos errores si algunos visitantes están visitando actualmente este páginas (error puede aparecer dentro cuando Smarty lo vea se encontró que el cache de las plantillas, pero caché sub-plantilla no se encuentra debido a que ya se ha retirado, por ejemplo).

Las recomendaciones y consejos son apreciados.

Gracias.

¿Fue útil?

Solución

Tome un vistazo a la documentación del sabelotodo: el " caché grupos " sección. Es exactamente eso.

Otros consejos

debe no borrar la memoria caché de forma manual. Uso clear_cache () y () clear_compiled_tpl para eso. Puede borrar toda la caché y también hacer limpieza selectiva con ellos.

El uso puede conmutar el cachedir sabelotodo, dependiendo de dónde se quiere es (se puede comprobar que con un poco propia sentencias if)

// Create smarty object
$smarty = new Smarty();

// Change smarty-dir is like this:
if (isset($_GET['userId'])) {
    $smarty->compile_dir = '/path/to/dir/' . $_GET['userId'];
} else {
    $smarty->compile_dir = '/path/to/dir/default';
}

El segundo punto es un poco más difícil, hay que foreach a través de todos MAPPS, y asignar el nuevo directorio de compilación, y luego ejecute el siguiente comando:

$smarty->clear_cache();

Sin embargo, como usted ha dicho, es posible que se solicita el archivo, mientras que hay una eliminación. : - (


Pero no se recomienda el uso de diferentes carpetas de caché, Smarty no almacena en caché la salida, sólo el archivo PHP compilada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top