Question

Je voudrais aller un peu plus loin dans la mise en cache Smarty, j'ai quelques questions simples ...

  1. Pour manipuler l'invalidation du cache Je veux savoir ce répertoire Smarty stocke le cache de dans. Par exemple, toutes les pages mises en cache liées à user_id=123 Je veux conserver à cache/users/123/. Où cache est la mise en cache Smarty dir. Comment puis-je dire Smarty le cache du magasin lié à user_id=123 à cache/users/123/? Will Smarty cache de stockage des sous-modèles dans ce répertoire aussi?

  2. Y at-il des recommandations sur le cache de nettoyage dans ce répertoire? Je pense que tout simplement la suppression des fichiers de ce répertoire peuvent causer des erreurs si certains visiteurs visitent actuellement cette page (erreur peut occure lorsque Smarty verra que le cache de modèle se trouve, mais cache sous-modèle est introuvable, car il a déjà été enlevé, par exemple).

Les recommandations et conseils sont appréciés.

Merci.

Était-ce utile?

La solution

Jetez un oeil à Smarty docs: le « Cache Groupes ». Est-ce exactement cela.

Autres conseils

Vous devez PAS Effacer le cache manuellement. Utilisez clear_cache () et clear_compiled_tpl () pour cela. Vous pouvez effacer toutes les données et aussi faire compensation sélective avec eux.

L'utilisation peut changer Smarty cachedir, selon l'endroit où vous voulez est (vous pouvez vérifier que certains propres instructions 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';
}

Le deuxième point est un peu plus difficile, vous devez foreach par tous MAPPS, et attribuer la nouvelle compilation dir, puis exécutez la commande suivante:

$smarty->clear_cache();

Mais comme vous l'avez dit, il est possible que le fichier est demandé alors qu'il ya une suppression. : - (


Mais il est recommandé de ne pas utiliser des dossiers de cache, Smarty ne cache pas la sortie, juste le fichier PHP compilé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top