Je voudrais aller un peu plus loin dans la mise en cache Smarty, j'ai quelques questions simples ...Smarty infirmation fichiers mis en cache
Pour manipuler l'invalidation du cache Je veux savoir ce répertoire Smarty stocke son cache Par exemple, toutes les pages mises en cache liées à
user_id=123
Je veux stocker àcache/users/123/
. Oùcache
est smarty cache dir. Comment puis-je dire à smarty de stocker le cache lié àuser_id=123
àcache/users/123/
? Smarty stockera-t-elle également le cache de sous-modèles dans ce répertoire?Existe-t-il des recommandations sur le nettoyage de la mémoire cache dans ce répertoire? Je pense que la suppression de fichiers de ce répertoire peut provoquer des erreurs si certains visiteurs visitent actuellement cette page (une erreur peut survenir lorsque smarty verra que le cache de template est trouvé, mais le cache de sous-template est introuvable car il a déjà été supprimé par exemple).
Toutes recommandations et conseils sont appréciés.
Merci.
merci pour votre réponse. Existe-t-il des moyens de définir un sous-répertoire de cache, alors que $ smarty-> cache_dir est défini sur un seul répertoire ('$ smarty-> cache_dir = '/ path/to/cache''). Cela résoudra une énorme charge de problèmes, je pense. Je sais que si '$ smarty-> use_sub_dirs = true' nous pouvons définir le chemin vers le cache directement dans cache_id ('/user/123/'), mais Smarty ajoutera aussi ses propres sous-répertoires supplémentaires à notre cache_id, donc en résultat nous obtiendrons quelque chose comme ('/ user/123 /% 12 /% 23 /% 45 /'). Savez-vous comment l'éviter? – Kirzilla
Lorsque vous le définissez sur true, vous pouvez utiliser un différent cache_id à chaque fois ($ smarty-> fetch ('fichier', 'cacheId') & $ smarty-> display ('fichier', 'cacheId')). – Ronn0
Smarty effectue les deux types de mise en cache si vous les activez. Vous pouvez également mettre en cache les modèles compilés et la sortie finale. – djn