begin process at 2013 06 18 23:09:37
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

Tutoriaux

 > Mise en place d'un systeme de cache rapidement

Mise en place d'un systeme de cache rapidement


 Information sur le tutoriel

Note :
Aucune note

 Description

un tutoriel qui vous apprendra à créer en quelque minutes un système de cache pour votre site l'idée est de faire savoir d abord de quoi parle t-on quand on parle de système de cache a quoi sert il et comment il fonctionne et la question la plus importante ai-je besoin de ce système pour mon site

Tutorial

Mise en place d’un système de cache pour son site

  • Introduction :

D’abord c’est quoi un système de cache ?

C’est tous simplement une méthode utiliser pour réduire la charge au serveur en effet nombreux ce qui ont été révoqué par leur hébergeur a cause de la consommation excessives de ressource par leur application.

Mais qu’est ce qui consomme énormément les ressources serveur ?

En généralement les requêtes SQL surtouts pour les sites qui utilises les news le livres d’or ou toutes autre fonctions faisant appel à MySQL

Dois-je à tout prix intégrer un système de cache pour mon site ?

Ceci ne dépendra que de votre application si vous comptabiliser par exemple la vue de votre page si le nombre de page vue par minute atteint les 200 par minute cela va sans dire que vous aurez besoins de cache si vous ne voulez pas être mis dehors par votre hébergeur !!

  • Fonctionnement :

Le cache est utiliser suivant le langage mais dans notre cas en PHP on s'en sert pour éviter à chaque chargement de page d'exécuter les requêtes sql dans ce cas le système de cache va effectuer ceci

  • L’utilisateur veut accéder à une page qui exécute une avalages de requêtes sql
  • Le système vérifie si cette page a un cache là deux cas se présente
  • si le cache existe pour cette page il vérifie la date de sa dernière modification en la comparant a un intervalle qui lui a été définit si le cache de la page est toujours valide il n’effectue pas de requête SQL et il affiche juste « le serveur est soulager » sinon il recrée le cache
  • Si le cache n’existe pas il sera crée


Maintenant que vous savez ce que c’est un cache a quoi il sert et vous avez comptabilisé 3000 requêtes par minute on passe a l’étape suivante

  • Mise en place du système de cache
  • Histoire de bien organiser notre projet créer un dossier nommé cache a la racine de votre site
  • Créer une page qui s’appelle caching-head.php // cette page sera appelle au début de index.php
  • Créer une autre page qui s’appelé caching-foot.php // ce page sera appeler en fin de index.php
  • Et créer notre fameux index.php

Je vous passe les codes bien détaillé

  • Caching-head.php

< ?php

// On définit la duré de validité d’un fichier cache qui est de ici de 30 minute

$expireTime = time () -1800 ;

// On définie une variable de type bool qui est destiner a index.php pour dire

    // si il doit ou non exécuter son code ou que le cache existe vous verre

// son utilisation par la suite

$caching = FALSE ;


// On récupère l’url

$url = $_SERVER['REQUEST_URI'] ;


// On transforme l'adresse en nom de fichier

$url = str_replace(‘/ ‘,’-‘,$url);


// On construit le chemin de notre fichier cache

$cacheFile = "cache/".$url. ‘.html’ ;


// On verifie maintenant si le fichier cache existe ou pas

If( file_exists($cacheFile) ) {


    // Il existe on doit maintenant vérifier si sa durer a expirer oui ou non

    // en utilisant la fonction

    // filemtime () qui revoit le timestamp au moment de la dernière

// modification

    if (filemtime($cacheFile) < $expireTime) ) {


        // la page existe mais son cache à expirer

        // on démarre la bufferisation

        ob_start();

// Avec la variable $caching a FALSE le script caching-foot.php

// saura qu’il doit recréer le cache

    } else {

        // la page existe et le cache n’a pas expirer alors on lit le fichier

        // on met $caching a TRUE pour dire a index.php

// n’exécute pas ton contenu et caching-foot.php

// de ne pas recréer le cache

            $caching = TRUE ;

         readfile($cacheFile);

    }

} else {

        // Le fichier cache n’exit pas on doit le créer

        // on démarre la bufferisation

ob_start() ;

// Avec $caching a FALSE les scripts ci-dessous saurons qu’aucun cache

// n’existe pour cette url il doit être créé

}?>

  • Index.php

< ?php

// On inclue caching-head.php

Include ‘caching-head.php’ ;

// On test maintenant la variable la variable $caching si on doit oui ou non

// exécuter notre code

If ( !$caching) {

    // coder tous ce que vous semble bon tester par exemple avec l’affichage d’une

// liste de news ou d’articles dans votre base

    }

    // On inclue caching-foot.php

Include ‘caching-foot.php’ ;

?>

  • Caching-foot.php

< ?php

    // On test si on doit recrée oui ou non le cache

    If ( !$caching) {

        // Le cache n’existe pas on doit le créer

        // on récupère le contenu du buffer

$buffer = ob_get_contents();

        // on créer un cache pour l’url correspondante

        // on ouvre le fichier en mode création

        $fp = fopen($cacheFile, "w");

        // Si l’ouverture du fichier s’est bien dérouler

        if ($fp) {

            // on écrit le contenu du buffer dans le fichier cache

            fputs($fp,$buffer);

            // On ferme le fichier

fclose($fp);

         }

        // On efface le buffer et on affiche

        ob_clean() ;

        ob_end_flush() ;

    }

?>

  • Explication

Voila votre système de cache est en place voici le fonctionnement du script en résumé

Index.php est la page de base c’est elle qui sera charger par le navigateur elle contient le code permettant de traiter des donnes provenant de la base de données dans son tous début il fait appelle a caching-head.php qui permet de savoir si il y’a un cache ou non pour l’url courante à l’aide d’une variable booléenne il dit a index.php d’exécuter oui ou non son traitement index.php doit tester si cette variable est a TRUE ou FALSE si elle est à TRUE il n’exécute pas son traitement si non il l’exécute après ça il laisse la main a caching-foot.php qu’il a inclue en fin de page ce script quand doit soit créer/recréer le cache en se basant aussi sur la variable booléenne $caching

  • Test

Je suis un peu feignant pour écrire un code de test mais vous avez juste a faire un select dans la page index.php pour récupérer des données d’une table si vous exécuter la page pour la première fois aller dans votre base de donnée et modifier manuellement l’une des valeurs de la table dont vous avez extrait les données vous verrez que vos changement ne seront visible qu’au bout de 30 minutes car c’est cette valeur qu’on a définit pour que le cache soit recréer

  • Conclusion

Bon voila la démarche à faire pour avoir un système de cache opérant mais opter pour l’améliorer surtout au niveau de la construction du nom du fichier cache et sachez que ce code est limiter s’il s’agit d’une page qui doit faire une pagination .

Je vous souhaite une bonne lecture et au fait les codes que j’ai écrit je l’ai écrit dans la follet et je ne les ai pas testé mais je serai la pour vos questions et suggestions



Commentaires

Commentaire de Lyron le 28/08/2010 19:32:57

Il y a vraiment trop de fautes (de français je parle). En plus tu colles souvent tes phrases et ça devient vraiment incompréhensible...
Moi non plus je n'ai pas testé ton programme que tu as écrit "dans la follet". Le thème me semble intéressant mais j'ai lâché avant même d'avoir lu le code ! C'est vraiment très peu supportable xD
Il ne faut pas le prendre mal, je dis sans doute ce que tout le monde pense avant d'aller voir ailleurs...

Ceci dit, la présentation et la structure me semble assez bonnes.

Commentaire de cod57 le 30/10/2010 10:08:19

sujet utile je vais tester ton code ... bien commenté pour moi !

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juin 2013
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,466 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales