Le cache est utilisée pour accélérer l'appel de display() ou de fetch() en sauvegardant leur résultat dans un fichier. Si un fichier de cache est disponible lors d'un appel, il sera affiché sans qu'il ne soit nécessaire de regénérer le résultat. Le système de cache peut accélérer les traitements de façon impressionnante, en particulier les templates dont la compilation est très longue. Comme le résultat de display() ou de fetch()est dans le cache, un fichier de cache peut être composé de plusieurs fichiers de templates, plusieurs fichiers de configuration, etc.
Comme les templates sont dynamiques, il est important de faire attention à la façon dont les fichiers de cache sont générés, et pour combien de temps. Si par exemple vous affichez la page d'accueil de votre site Web dont le contenu ne change pas souvent, il peut être intéressant de mettre cette page dans le cache pour une heure ou plus. A l'inverse, si vous affichez une page de météo mise a jour toutes les minutes, mettre cette page en cache n'a aucun sens.
La première chose à faire est d'activer le cache en mettant $caching = 1 (ou 2).
Avec le cache activé, la fonction display('index.tpl') va afficher le template mais sauvegardera par la même occasion une copie du résultat dans un fichier (de cache) du répertoire $cache_dir. Au prochain appel de display('index.tpl'), le fichier de cache sera préféré à la réutilisation du template.
Note technique : Les fichiers situés dans $cache_dir sont nommés de la même façon que les templates. Bien qu'ils aient une extension ".php", ils ne sont pas vraiment exécutable. N'éditez surtout pas ces fichiers !
Tout fichier de cache a une durée de vie limitée déterminée par $cache_lifetime. La valeur par défaut est 3600 secondes, i.e. 1 heure. Une fois que cette durée est dépassée, le cache est regénéré. Il est possible de donner une durée d'expiration propre à chaque fichier de cache en réglant $caching = 2. Se reporter à la documentation de $cache_lifetime pour plus de détails.
Si $compile_check est actif, chaque fichier de template et de configuration qui a un rapport avec le fichier de cache sera vérifié pour détecter une éventuelle modification. Si l'un de ces fichiers a été modifié depuis que le fichier de cache a été généré, le cache est immédiatement regénéré. Ce processus est couteux, donc, pour des raisons de performances, mettez ce paramètre à false pour une application en production.
Si $force_compile est actif, les fichiers de cache sont toujours regénérés. Ceci revient finalement à désactiver le cache. $force_compile est utilisé à des fins de débogage, un moyen plus efficace de désactiver le cache est de régler $caching = false (ou 0).
La fonction is_cached() permet de tester si un template a ou non un fichier de cache valide. Si vous disposez d'un template en cache qui requiert une requête à une base de données, vous pouvez utiliser cette méthode plutôt que $compile_check.
Vous pouvez rendre dynamiques seulement certaines parties d'une page avec la fonction de template {insert}. Imaginons que toute une page doit être mise en cache à part une bannière en bas à droite. En utilisant une fonction {insert} pour la bannière, vous pouvez garder cet élément dynamique dans le contenu qui est en cache. Reportez-vous à la documentation {insert} pour plus de détails ainsi que des exemples.
Vous pouvez effacer tous les fichiers du cache avec la fonction clear_all_cache(), ou de façon individuelle (ou par groupe) avec la fonction clear_cache().
| Précédent | Sommaire | Suivant |
| unregister_resource() | Niveau supérieur | Caches multiples pour une seule page |