Domanda

Mi piacerebbe andare un po 'più in profondità Smarty caching, quindi ho alcune domande semplici ...

  1. Per manipolare invalidazione della cache Voglio sapere che cosa directory Smarty è la memorizzazione di essa la cache in. Ad esempio, tutte le pagine memorizzate nella cache relative alla user_id=123 voglio conservare a cache/users/123/. Dove cache è Smarty caching dir. Come posso dire Smarty per memorizzare la cache relativi a user_id=123 a cache/users/123/? cache dell'archivio Will Smarty di sub-modelli in questa directory anche?

  2. C'è qualche raccomandazioni circa la pulizia della cache in questa directory? Penso che la semplice rimozione di file da questa directory può causare alcuni errori se alcuni visitatori stanno visitando questa pagine (di errore può occure quando Smarty vedere che cache del modello viene trovato, ma la cache sub-modello non si trova perché è stato già rimosso, per esempio).

Tutti i consigli ed i suggerimenti sono apprezzati.

Grazie.

È stato utile?

Soluzione

Date un'occhiata ai documenti Smarty: la " Cache Gruppi sezione". Fa esattamente questo.

Altri suggerimenti

Si dovrebbe non di cache chiaro manualmente. Usa clear_cache () e clear_compiled_tpl () per questo. È possibile cancellare tutte le cache e anche fare compensazione selettiva con loro.

Usa può cambiare la cachedir Smarty, a seconda di dove si vuole è (è possibile controllare che con un po 'da soli se-dichiarazioni)

// 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';
}

Punto due è un po 'più difficile, bisogna foreach attraverso tutti MAPPS, e assegnare il nuovo dir di compilazione, e quindi eseguire il seguente comando:

$smarty->clear_cache();

Ma come hai detto, è possibile viene richiesto il file mentre v'è una rimozione. : - (


Ma non è raccomandato l'uso di diverse cartelle di cache, Smarty non memorizza nella cache l'uscita, solo il PHP-file compilato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top