Framework

Classe Cache : génération du fichier cache d'un module

Table des matières
La classe Cache permet de gérer les fichiers cache.
Nous allons voir ici comment l'utiliser pour un module.

Configuration du module



Il faut signaler au noyau (par l'intermédiaire du fichier de configuration du module) que le module utilise un fichier de cache. Il faut ouvrir le fichier lang/french/config.ini et modifier à l'intérieur la ligne concernant le cache pour l'activer, soit remplacer
Code TEXT :
cache=0
par
Code TEXT :
cache=1


Le noyau sait maintenant que vous utilisez un fichier cache et régénèrera automatiquement votre fichier lorsqu'on demande la régénération totale du cache.


Mise en place du fichier de génération



Lorsque vous demandez au noyau de régénérer votre fichier cache il appelle un fichier que vous devez avoir mis en place si vous utilisez le cache : il s'agit du fichier qui va générer le contenu de votre fichier.
Par convention, il doit être dans le dossier de votre module (à la racine) et se nommer module_cache.php ou module est l'identifiant de votre module.
L'identifiant de votre module est le même que le dossier de votre module. C'est aussi celui que vous fournirez à l'appel d'une méthode de la classe Cache concernant votre fichier.
Nous allons maintenant voir ce que doit contenir de fichier.


Contenu du fichier de génération du cache



Ce fichier doit contenir une déclaration de fonction et rien d'autre.
Il est déjà conseillé de commencer ce fichier par la ligne suivante pour empêcher l'exécution de ce script sans que l'environnement de PHPBoost ait été chargé au préalable
Code PHP :
if( defined('PHP_BOOST') !== true ) exit;

La fonction doit s'appeler generate_module_file_module (où module doit être remplacé par l'identifiant de votre module). Elle doit renvoyer une chaîne qui est en fait ce qui sera écrit dans le fichier.
A l'intérieur de cette fonction vous aurez certainement besoin d'objets de l'environnement PHPBoost (pour utiliser la base de données ou autres). Pour cela il suffit de rajouter la ligne suivant en début de fonction pour importer ces objets dans le contexte local de la fonction.
Code PHP :
global $Sql; //Importation de l'objet Sql
//Pour importer plusieurs variables externes il suffit de les mettre à la suite après global en les séparant par des virgules.


Retour de cette fonction



Comme nous l'avons vu plus haut, le retour de cette fonction doit être ce qui va être écrit dans le fichier cache. Le chargement de ce fichier est en réalité une inclusion. Un problème ce pose : cette inclusion est faite dans une méthode de la classe Cache et les variables déclarées dans ce fichier sont donc considérées comme locales à la méthode. Il est donc indispensable dans ce que vous retournez de marquer vos variables de façon à ce qu'elles soient globales.
Par exemple si vous souhaitez charger la variable $MODULE_CACHE il faudra commencer le fichier par
Code PHP :
global $MODULE_CACHE;

Si vous utilisez plusieurs variables vous pouvez les déclarer comme globales en les mettant à la suite après global, séparées par des virgules.

Exemple d'utilisation



Vous trouverez ici un exemple d'utilisation complet du système de cache pour un module.
Cette page a été vue 1965 fois