Dernièrement j’ai procédé au lancement de la nouvelle plateforme du Journal L’Avantage à Rimouski. Le nouveau site, en Joomla 1.5, est construit avec un bon nombre de modules, plugins et composants maison que j’ai programmé moi même pour les besoins du projet. Lorsque l’on programme pour un site avec un potentiel de trafic élevé, il est très important d’utiliser les fonctions natives de caching de Joomla dans notre programmation afin de donner une petite chance au serveur SQL de survivre à, par exemple, une nouvelle indexée dans Google News.

Déjà, si vous savez comment programmer avec le framework de Joomla, utiliser les fonctions natives de caching de ce dernier ne devrait pas vous causer beaucoup de problème. En réalité c’est extrêmement simple.

En premier lieu, il faut activer le cache dans la configuration globale de Joomla par le GUI du Backend. Cependant, il est possible de forcer l’utilisation de la cache en informant directement Joomla dans votre code source (voir ci-dessous). Pratique lorsque l’on fait un code gourmand que l’on pense distribuer publiquement.

En premier lieu, déclarez une référence vers l’objet global JFactory de Joomla directement dans votre code php afin d’informer le cadriciel que vous désirez utiliser cette fonctionnalité.

$cache = & JFactory::getCache();

Si vous avez besoin de forcer l’utilisation du cache dans vos créations, par exemple pour un code avec le potentiel de requête SQL lourde sur plusieurs milliers d’entrée dans une BD SQL, vous pouvez indiquer à Joomla que vous désirez forcer l’utilisation du cache de cette façon :

$cache->setCaching( 1 );

Encore une fois, cette technique est très utile lorsque vous développez un code gourmand, destiné au grand publique.

Par la suite, il suffit de convertir votre méthode d’extraction des données traditionnelle pour la faire traiter par le système de caching de Joomla.

Par exemple, la méthode suivante :

$mesDonnees = maClasse::obtentionDeMesDonnees();
Deviendra :

$mesDonnees = $cache->call( array( 'maClasse', 'obtentionDeMesDonnees' ) );

Vous pouvez passer des paramètres à votre classe très facilement en ajoutant simplement vos variables à la fin du tableau. Par exemple :

$mesDonnees = maClasse::obtentionDeMesDonnees($variable);

Deviendra :

$mesDonnees = $cache->call( array( ‘maClasse’, ‘obtentionDeMesDonnees’),$variable);

Notez également que vous pouvez utiliser une fonction n’étant pas membre d’une classe de la façon suivante :

$mesDonnees = maFonction();

Deviendra :

$mesDonnees  = $cache->call( 'maFonction' );

Le reste de votre code s’exécutera de la façon habituelle, mais utilisera des données en provenance du cache. Cela donnera un sérieux « break » à votre serveur SQL et aura pour effet direct d’améliorer la vitesse de chargement de votre projet Joomla 1.5.

Bon code!

Références (anglais seulement) : http://docs.joomla.org/Tutorial:Using_Caching_to_Speed_Up_Your_Code