[script] Mise en cache des pages PHP

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

tophus
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 210
Inscription: Ven Aoû 12, 2005 8:23

Message le Jeu Juin 22, 2006 9:00

Bonjour,

Je suis en train de tester un sysytème de mise en cache, de page dynamique, ca marche très bien, par contre je ne sais pas comment gérer certaines pages qui on un espace perso.
Si une personne se log, et se promène sur le site, il y a des pages qui sont mise en cache avec sa session, en fait, je pense qu'il n'est pas possible de metre en cache les pages contenant un espace perso, ou alors faire un système "si logué" on ne lit pas le cache. Je me trompe??

radiotrance
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 156
Inscription: Dim Juil 10, 2005 11:24

Message le Dim Aoû 20, 2006 17:35

Grand merci pour le script de mise en cache, je suis en train de faire une page qui parse 2 fichiers rss distant et du coup grâce au cache je n'ai plus a refaire les opérations a chaque visite de la page.

Mon correspondant gagne en ressources, moi aussi, mais surtout le temps de chargement est minime, et ça c'est le top.

En tout cas merci pour tes astuces c'est sympa de faire partager.


david96
WRInaute accro
WRInaute accro
 
Messages: 1411
Inscription: Dim Aoû 28, 2005 21:56

Message le Ven Oct 27, 2006 13:32

C'est marrant j'ai mis un système dans ce genre y'a pas longtemps à cause justement des connexions multiples dans la base ! :(

Un grand merci à toi fandecine, pour le partage de ton script ! :respect:

Sinon j'ai lu ici où là que c'était surtout pour les dédiés... C'est marrant j'aurais dis le contraire !

Sachant justement que les mutualisés brident le nombre des requêtes (en général une dizaine simultanées, voir moins)... La mise en cache ne peut être que bénéfique ?

Sinon pour la mise à jour du cache, j'opte plus pour la fonction unlink() :D
Du genre :

Code: Tout sélectionner
function miseAjour($doc)
{
// l'attribut $doc sera le fichier éventuel qui a été mis en cache
   if(file_exists($doc))
   {
      echo "le fichier <b>".$doc." a été supprimé</b><br />\n";
      unlink($doc);
   }
   else
   {
      echo "le fichier n'existe pas il vient d'être créée en cache<br />\n";
   }
}

Voilà ensuite il suffit simplement d'appeler cette fonction avant la requête de modif ou d'ajout correspondant !

:D

edit : Ha oui une chtite reco. s'impose !


medium69
WRInaute accro
WRInaute accro
 
Messages: 2188
Inscription: Sam Mai 07, 2005 9:36

Message le Dim Nov 12, 2006 18:37

j'ai un problème en utilisant ce script :cry:

Le cache est bien créé mais lorsque je veux visualiser de nouveau la page (une fois le cache créé), voici le message que j'ai :

Code: Tout sélectionner
Parse error: syntax error, unexpected T_STRING in /home/sciencee/www/essai/cache-definition-science-1.html on line 1


Je ne comprend pas du tout


medium69
WRInaute accro
WRInaute accro
 
Messages: 2188
Inscription: Sam Mai 07, 2005 9:36

Message le Dim Nov 12, 2006 18:56

medium69 a écrit:j'ai un problème en utilisant ce script :cry:

Le cache est bien créé mais lorsque je veux visualiser de nouveau la page (une fois le cache créé), voici le message que j'ai :

Code: Tout sélectionner
Parse error: syntax error, unexpected T_STRING in /home/sciencee/www/essai/cache-definition-science-1.html on line 1


Je ne comprend pas du tout


En fait je viens de comprendre :

J'ai cela en début de page :
Code: Tout sélectionner
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


ceci
Code: Tout sélectionner
<?xml version="1.0" encoding="iso-8859-1"?>


est interprété comme étant du PHP :cry:

En l'enlevant cela résoud tout


Ohax
WRInaute accro
WRInaute accro
 
Messages: 6392
Inscription: Lun Juil 05, 2004 13:30

Message le Dim Nov 12, 2006 19:11

LOL

OSEF

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> suffit amplement :-)

mijsoot
Nouveau WRInaute
 
Messages: 45
Inscription: Mer Oct 12, 2005 12:06

Message le Ven Nov 24, 2006 17:19

Bonjour à tous,

Je cherchais à faire aussi un système de cache pour un de mes sites. En cherchant je suis tombé sur un article du JounalDuNet, ou plutôt DirectionPHP :

http://developpeur.journaldunet.com/tutoriel/php/050131-php-directionphp-cache-1.shtml

Mais leur fichiers étaient bugués, j'ai corrigés ça et je leur ai posté ici :

http://forumdeveloppeur.journaldunet.com/viewtopic.php?p=1777#1777

voilà, ça peut servir ! :lol:


Patrice A.
Modérateur
Modérateur
 
Messages: 2413
Inscription: Ven Fév 11, 2005 19:36

Message le Jeu Nov 30, 2006 14:58

J'utilise intensivement ce script sur l'ensemble de mes sites, encore merci. :)

mijsoot
Nouveau WRInaute
 
Messages: 45
Inscription: Mer Oct 12, 2005 12:06

Message le Dim Déc 17, 2006 17:56

Bonjour à tous,

Juste un petit mot pour dire que je ne sais pas pourquoi (ils ne m'ont pas prévenu par email) mais journaldunet a enlevé mon post où il y avait la correction de leur fichier.

Toujours est-il que j'avais fait des fichiers de corrections, les voici :

http://www.1max2web.com/cache_php/listing_1.html
http://www.1max2web.com/cache_php/listing_2.html
http://www.1max2web.com/cache_php/listing_3.html
http://www.1max2web.com/cache_php/listing_4.html
http://www.1max2web.com/cache_php/inc_cache.html

Ils n'ont pas dû aimer mon post :oops:

Pour les explications c'est toujours par là http://developpeur.journaldunet.com/tutoriel/php/050131-php-directionphp-cache-1.shtml que cela se passe ...

ShePaKoiFer
Nouveau WRInaute
 
Messages: 12
Inscription: Jeu Oct 16, 2003 23:41

Message le Ven Jan 19, 2007 16:00

Bonjour,

Je me permet de faire remonter ce topic, avec peut etre une idée pertinante, à vous de me le dire.

Le point noir de ce script est l'effacement automatique des pages en cache.

Admettons que par la premiere visite de la page, le visite provoque la mise en cache. Ceux qui visiterons cette meme page ultérieurement bénéficirons de la page en cache. Mais si il y a modification de cette page, on restera alors sur la premiere version. Alors pourquoi ne pas comparer la page qui est en cache avec celle où se trouve le visiteur.

J'ignore peut etre que la comparaison serait très lourde niveau ressource serveur, mais au moins ca automatisement le refraichissement du cache.

Nous pouvons également rajouter un compteur de hit avant comparaison de la page et interpoler cette condition avec la condition du temps comme c'est acquis sur le script.

Autre chose, une page de mon site se compose de la facon suivante :
1 fichier php pour le haut de page
1 fichier php pour le pied de page

et entre les deux, le contenu de la page.

La problématique est que le script de ce topic est en deux partie. Si je met la premiere partie sur le "haut de page" et la seconde en "pied de page" j'hérite évidement d'une erreur (car la conditon dans la premiere partie reste en suspend).

Si tu avais une solution de type jpcache (ou l'on appel la page contenant les fonctions necessaire à mettre la page en cache) à me proposer je t'en serais reconnaissant.

Sinon félicitation pour ce script, cela m'a permis d'y voir plus clair dans le codage d'un système de cache et surtout d'y apprendre de nouvelle fonction.

Cordialement,

mijsoot
Nouveau WRInaute
 
Messages: 45
Inscription: Mer Oct 12, 2005 12:06

Message le Ven Jan 19, 2007 19:07

ShePaKoiFer a écrit:Bonjour,

Le point noir de ce script est l'effacement automatique des pages en cache.

Admettons que par la premiere visite de la page, le visite provoque la mise en cache. Ceux qui visiterons cette meme page ultérieurement bénéficirons de la page en cache. Mais si il y a modification de cette page, on restera alors sur la premiere version. Alors pourquoi ne pas comparer la page qui est en cache avec celle où se trouve le visiteur.

J'ignore peut etre que la comparaison serait très lourde niveau ressource serveur, mais au moins ca automatisement le refraichissement du cache.


Salut ShePaKoiFer,
En fait je ne raisone pas comment cela pour le changement de contenu, je vois ça du côté administration. A chaque changement de contenu je supprime le cache correspondant comme le prochain internaute aurra bien la dernière version.J'ai aussi un script en admin pour effacer tout le cahce (au cas où). Aprés cela dépend beaucoup du type de site et de la fréquence de rafraichissement du contenu je pense.

Sinon je ne comprends pas trop ton problème par rapport à tes includes, parce que le script est fait en sorte justement (si tu le place en haut de tous tes includes et de ta page) de ne pas executer le reste du code si il trouve la page en cahce et sinon il execute la page et la met en cache.

Enfin je ne sais pas si je réponds à ta question ou si j'ai mal compris, n'hésites pas si c'est le cas :lol: .

A +

ShePaKoiFer
Nouveau WRInaute
 
Messages: 12
Inscription: Jeu Oct 16, 2003 23:41

Message le Ven Jan 19, 2007 23:06

A chaque changement de contenu je supprime le cache correspondant comme le prochain internaute aurra bien la dernière version.


Cet action est automatique ?
Tu met à jour ta base de donnée qui par conséquence efface ton fichier cache corresponsant
OU
Tu accède à ton repertoire cache par ton panel d'administration et tu efface maneul le fichier cache ?


Sinon je ne comprends pas trop ton problème par rapport à tes includes, parce que le script est fait en sorte justement (si tu le place en haut de tous tes includes et de ta page) de ne pas executer le reste du code si il trouve la page en cahce et sinon il execute la page et la met en cache.


Je viens de trouver la solution en t'exposant le problème en détail :)

radiotrance
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 156
Inscription: Dim Juil 10, 2005 11:24

Message le Dim Jan 21, 2007 12:50

Cet action est automatique ?
Tu met à jour ta base de donnée qui par conséquence efface ton fichier cache corresponsant
OU
Tu accède à ton repertoire cache par ton panel d'administration et tu efface maneul le fichier cache ?


Perso moi c'est dans le script, chaque fois qu'un commentaire et posté ou que le contenu de la page a changé, connaissant le nom du fichier cache, ca se surprime tout seul en faisant un petit unlink().

mijsoot
Nouveau WRInaute
 
Messages: 45
Inscription: Mer Oct 12, 2005 12:06

Message le Dim Jan 21, 2007 16:15

ShePaKoiFer a écrit:Cet action est automatique ?
Tu met à jour ta base de donnée qui par conséquence efface ton fichier cache corresponsant
OU
Tu accède à ton repertoire cache par ton panel d'administration et tu efface maneul le fichier cache ?


Oui pour moi c'est aussi automatiquement, mais ce n'est effectivement pas grand chose comme le dit radiotrance juste un unlink sur le fichier correspondant !!!

Voilou voilà, donc en fait il n'y a aucun problème quoi ! :lol:

Ryoh
Nouveau WRInaute
 
Messages: 4
Inscription: Mar Nov 01, 2005 9:24

Message le Jeu Fév 01, 2007 23:06

Bonjour,

J'ai testé le code, le souci c'est que je sais pas si ça fonctionne... j'ai rafraichi la page, dur de savoir si ça va plus vite...

j'ai un dossier cache avec un fichier cache-index.php à l'intérieur.. ça veut dire que ça fonctionne ou pas ? parce que sur la page d'accueil, j'ai toujours l'url du site en index.php et non pas index.html

[script] Mise en cache des pages PHP [script] Mise en cache des pages PHP

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: sr, Sullyvan et 1 invité