On joue à cache-cache ?

Publié le 21 mars 2008 par Tonylepsie

Je crois que c’est le titre le plus pourri que j’ai jamais fait mais bref ! on va bien evidemment pas jouer à cache-cache (quoique ^^), mais parler de mise en cache !
La mise en cache de fichiers peut être très utile, notemment si on appelle régulierement des flux RSS/XML (par exemple si on utilise des Webservices), ou même sur des requêtes MySql qui reviennent souvent. Le gain en performances est tout à fait appréciable !

Le principe est on ne peut plus simple : au lieu d’effectuer une requête vers une ressource à chaque chargement de la page, on écrit lors du premier chargement le contenu de la ressource dans un fichier texte, qu’on appellera par la suite !

Mettre un menu dynamique en cache peut être une très bonne idée pour optimiser le chargement d’un site web

L’exemple qui suit vous présente l’utilisation de la mise en cache sur un flux RSS.

Script php

    // recuperation du flux à traiter
    $flux = ‘http://feeds.feedburner.com/jegalereenwebdev’;
    $cache_file = ‘/cache/jegalere.xml’;
       
    // determination du temps de mise en cache (en secondes) : ici, 2h
    $delai = (60*2) ;
       
   // on verifie que le fichier est cache est toujours valide
   if ( file_exists($cache_file) & time() < (filemtime($cache_file)+$delai) ) {
           // le fichier en cache est valide, on le récupère
        $content = file_get_contents($cache_file);
        }
   // sinon, on met à jour le fichier en cache
   else {
       $content = file_get_contents($flux);
       if ( $content != ) {
            $file = fopen($cache_file, ‘w+’);
            fputs($file, $content);
            fclose($file);
            }
       else {
             $content = file_get_contents($rss_file);
         }
    }
 

Et voila !
Il ne reste plus qu’à parser la variable $content de la manière que vous préférez, et c’est plié !

cache, mysql, php, RSS