IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Mise en place d'un système de cache : questions


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Points : 687
    Points
    687
    Par défaut [Système] Mise en place d'un système de cache : questions
    Salut !

    je suis en train de réfléchier à mettre en place un système de cache pour accélérer le chargement des pages PHP de mon site et j'ai vu plusieurs techniques possibles.

    La technique qui me parait la plus simple (à priori) à mettre en place est la suivante.
    On crée un dossier "cache" où seront enregistrées les pages du site au format HTML, chaque nom de fichier faisant référence à l'url de la page.
    Lorsqu'une page est demandée, il y a 2 cas :
    - la page existe et sa date d'expiration n'est pas dépassée : on l'affiche
    - la page n'existe pas ou sa date est dépassé : on rexécute le script php et on met à jour sa page en cache, puis on l'affiche

    Si je ne me trompe pas c'est un peu la manière dont est géré le cache de SPIP, non ?

    Bref, jusque là pas de problème pour comprendre ce fonctionnement et l'utilité de ce système. Néanmoins, plusieurs questions me viennent :
    - Comment faire pour définir la date d'expiration ? Quels critères utiliser ?
    - Quand est-il des pages dont le contenu bougent fréquemment comme les pages d'un forum ou des pages contenant des stats (ex : 3 nouveaux commentaires pour cette news) ?
    - Que faire pour les pages personnelles d'un espace membre ? Faut-il aussi les mettre en cache ?
    - Faut-il penser à une autre technique plus complexe ?


    Merci d'avance pour vos réponses et idées...
    A++

  2. #2
    Membre habitué Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Points : 146
    Points
    146
    Par défaut
    salut !

    Pour la date d'expiration tu peux utiliser la date de modification du fichier.
    Pour le reste je suis prenneur de solution aussi

  3. #3
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Il "suffit" de supprimer les caches susceptibles d'afficher une info modifiée.

  4. #4
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Concernant le cache moi j'utilise le timestamp courant au moment de la création du ficheir de cache

    tmp.id_hasch_md5.timestamp.ext

    Après avec un explode ou une expression régulière je peux récupérer les infos... .. .

    Pour la gestion du cache plusieurs solutions... soit tu paramètre ton cache pour chaque catégories de ton site en fonction de leur dynamisme... soit si tu utilise des template tu peux gèrer le cache par block (template générale = cache, template contenu pas ou peu de cache) les deux solutions pouvant être couplés pour une plus grande efficacité... tu peux en plus implémenter la précompilation (comme avec SMARTY) ou tu crée un fichier .php contenant le code parsés et remplacés par les instruction php correspondantes ce qui alège encore le traitement le fichier compilé ne devant être parsé qu'une fois lors de la première visite de la page ou lors de modification du code... .. .

    @ tchaOo°

  5. #5
    Membre éclairé
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Points : 687
    Points
    687
    Par défaut
    Salut !

    J'avais vu cette technique de séparations par blocs, mais ça me semblait bien compliqué : il faut repérer les blocs, leur trouver un nom unique, définir une date d'expiration propre et vérifier pour chacun d'entre eux s'ils sont valides. Si je créait mon site maintenant je le ferais surement mais là j'ai qd même pas mal de pages et j'ai peur que ça prenne un certain temps... Enfin ça vaut peut-etre le coup !
    Y'a t'il des moyens simples pour le mettre en oeuvre ?

    J'utilise des templates avec un template général et un template contenu.
    J'avais pensé à faire un cache que pour le design général (menu et cadre) mais ce qui prend le plus de temps à priori ce sont les requêtes SQL et les traitements PHP du contenu...

    Par contre je n'ai pas tout saisis sur ce principe de précompilation. Est-ce qu'en fait tu mets en cache une partie du template avec les éléments textuels qui ne changent pas, et pour l'affichage complet de la page, là tu exécute le script php pour pouvoir remplacer les éléments restants ?

    Sinon, pour revenir à un système de cache par page, je pensais à qq chose du genre :
    • par défaut ttes les pages sont en cache
    • si qqn ajoute ou modifie une info via un formulaire, alors je supprime le cache ou je modifie la date d'expiration des fichiers concernés. Un peu compliqué mais bon...
    • pbm : comment faire si c'est le nombre d'affichage d'un message qui change...

    -> oui et avec les blocs il n'y aurait pas ce problème !! AHHH je tourne en rond !!!

    ou sinon je me mets à smarty mais faut que je change tout mes templates et tout mon code ! AHHHHH !!!

Discussions similaires

  1. [RMI] Mise en place RMI et système proche des EJB
    Par damien77 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 29/12/2008, 14h11
  2. Mise en place d'un systéme de vente en ligne
    Par luciedoudou dans le forum E-Commerce
    Réponses: 1
    Dernier message: 21/11/2008, 06h04
  3. Mise en place d'un système de login (client lourd)
    Par Icarus31 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 07/12/2007, 09h56
  4. [Système] Mise en place de SHA-256
    Par romanus dans le forum Langage
    Réponses: 2
    Dernier message: 28/08/2007, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo