[script] Mise en cache des pages PHP
- tophus
- WRInaute discret

- Messages: 221
- Inscription: 12 Aoû 2005
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??
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 discret

- Messages: 157
- Inscription: 10 Juil 2005
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.
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 passionné

- Messages: 1430
- Inscription: 28 Aoû 2005
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()
Du genre :
Voilà ensuite il suffit simplement d'appeler cette fonction avant la requête de modif ou d'ajout correspondant !
edit : Ha oui une chtite reco. s'impose !
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()
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 !
edit : Ha oui une chtite reco. s'impose !
-

medium69 - WRInaute passionné

- Messages: 2485
- Inscription: 7 Mai 2005
j'ai un problème en utilisant ce script
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 :
Je ne comprend pas du tout
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 passionné

- Messages: 2485
- Inscription: 7 Mai 2005
medium69 a écrit:j'ai un problème en utilisant ce script![]()
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
En l'enlevant cela résoud tout
- mijsoot
- Nouveau WRInaute

- Messages: 45
- Inscription: 12 Oct 2005
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 !
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 !
-

Patrice A. - WRInaute passionné

- Messages: 2415
- Inscription: 11 Fév 2005
J'utilise intensivement ce script sur l'ensemble de mes sites, encore merci. 
- mijsoot
- Nouveau WRInaute

- Messages: 45
- Inscription: 12 Oct 2005
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
Pour les explications c'est toujours par là http://developpeur.journaldunet.com/tutoriel/php/050131-php-directionphp-cache-1.shtml que cela se passe ...
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
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: 16 Oct 2003
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,
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: 12 Oct 2005
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
A +
- ShePaKoiFer
- Nouveau WRInaute

- Messages: 12
- Inscription: 16 Oct 2003
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 discret

- Messages: 157
- Inscription: 10 Juil 2005
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: 12 Oct 2005
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 !
- Ryoh
- Nouveau WRInaute

- Messages: 4
- Inscription: 1 Nov 2005
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
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
Lectures recommandées sur ce thème :
- [script] Mise en cache des pages PHP - V2
- Problème de mise en cache de pages PHP
- [tutoriel] Mise en cache en PHP, la version complète.
- Mise en cache PHP et librairie GD, est ce correct svp ?
- Utilisation intensive de la mise en cache des pages PHP.
- Mise en cache des pages php : mon alternative hérétique !
- [script] php class cache : accélérez vos pages !
- Recherche script d'annuaire PHP avec lien caché
- Mise en place d'un script de news php dans wordpress
- [Mise en cache] cryptage page html en cache
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

