[script] Mise en cache des pages PHP

Consultez la formation SEO spéciale Wordpress
par WebRankInfo / Ranking Metrics

petitchevalroux
WRInaute discret
WRInaute discret
 
Messages: 190
Enregistré le: 31 Mai 2006

Re: [script] Mise en cache des pages PHP

Message le Ven Nov 27, 2009 14:51

Furinkazan a écrit:Bein non, j'ai : un fichier .tpl.php (le modèle), un fichier .php (le controlleur) et un fichier .css (la vue) ...
J'ai bien séparé la mise en forme, le traitement des données et le design.
...
Et la marmotte elle interprète le php cotés client en javascript ????? :mrgreen:

Plaisanterie mise à part un template = la Vue, le fichier/classe qui injecte les données du modèle dans le template (parsing du template) = Controleur, et le modèle .... c'est ton objet de données normalement que tu utilises dans ton controleur ... donc spout à raison je vois un debut de V de C mais toujours pas de M :D.

Le css ne peut pas être considéré comme une vue vu qu'il ne contient aucune donnée de ton modèle ...

Je suis pas expert en MVC mais c'est comme ça que je l'interprète ...

Furinkazan
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 14
Enregistré le: 2 Nov 2009

Re: [script] Mise en cache des pages PHP

Message le Lun Nov 30, 2009 11:19

Erf, tout dépend de comment tu vois ton modèle. Chez moi, je ne vois pas ça côté données, mais plutôt côté page du site : ainsi le modèle d'une page est bien te fichier .tpl.php .
Effectivement, si tu regarde du côté des données, j'ai le modèle et le contrôleur dans le même fichier. Mais je pense pouvoir séparer ces deux concepts assez aisément. Va falloir que je teste tiens ! :D

macstyle
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Enregistré le: 12 Avr 2010

Re: [script] Mise en cache des pages PHP

Message le Lun Avr 12, 2010 22:35

Pas mal merci je vais tester

milkiway
WRInaute accro
WRInaute accro
 
Messages: 4994
Enregistré le: 3 Fév 2004

Re: [script] Mise en cache des pages PHP

Message le Jeu Avr 15, 2010 9:51

Bonjour,

Désolé de débarquer comme ça mais le script en 1ère page est il encore valable ?
J'utilise le moteur de template de phpBB et niveau SQL/PHP mon site commence à être lourd, il faut que je cache le tout alors que pour l'instant je ne cache que le plus léger : la consolidation des templates.

milkiway
WRInaute accro
WRInaute accro
 
Messages: 4994
Enregistré le: 3 Fév 2004

Re: [script] Mise en cache des pages PHP

Message le Ven Avr 16, 2010 9:15

Alors j'ai mis en place ton système fandecine. Merci... mais ça ne me génère que des fichiers vides! Pourquoi ?


fandecine
Modérateur
Modérateur
 
Messages: 2192
Enregistré le: 2 Avr 2005

Re: [script] Mise en cache des pages PHP

Message le Ven Avr 16, 2010 10:45

milkiway a écrit:Alors j'ai mis en place ton système fandecine. Merci... mais ça ne me génère que des fichiers vides! Pourquoi ?


Ben, faudrait voir ton script pour répondre :mrgreen:

:arrow: MP :wink:

milkiway
WRInaute accro
WRInaute accro
 
Messages: 4994
Enregistré le: 3 Fév 2004

Re: [script] Mise en cache des pages PHP

Message le Ven Avr 16, 2010 11:03

Bon en fait ça fait ça car je suis un boulet :mrgreen:
En fait, d'après ce que j'ai compris il y a une partie à placer en entête, et l'autre en pied de page.

Mais chez moi ça ne fonctionne pas. Quand, dans mon footer, je place un ob_end_flush();, ça ne fait rien.
J'ai bien un ob_start() au début de mon script mais on dirait que quelque chose lui fait générer le contenu avant.

Un echo annule l'ob_start()?


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2446
Enregistré le: 20 Fév 2005

Re: [script] Mise en cache des pages PHP

Message le Mer Avr 21, 2010 20:01

Salut,

Est il normal que certains fichiers mis en cache soient des fichiers qui :
1-Ne sont pas rewrité même si l'intégralité du site l'est ?
2-Contient des éléments en sup. dans le nom du fichier en cache ( par exemple, j'ai 8 fois "en-" qui se suit dans plusieurs fichier)?
3-à l'origine n'existe pas sur mon serveur?

Merki

milkiway
WRInaute accro
WRInaute accro
 
Messages: 4994
Enregistré le: 3 Fév 2004

Re: [script] Mise en cache des pages PHP

Message le Jeu Avr 22, 2010 8:15

Et bien ça marche nickel :)
Merci

milkiway
WRInaute accro
WRInaute accro
 
Messages: 4994
Enregistré le: 3 Fév 2004

Re: [script] Mise en cache des pages PHP

Message le Jeu Avr 22, 2010 9:07

PS : comment faire pour que le cache soit regénéré tous les jours ?
Il faut supprimer tous les fichiers caches ou modifier la durée de validité (et comment) ?


OTP
Modérateur
Modérateur
 
Messages: 20163
Enregistré le: 16 Déc 2005

Re: [script] Mise en cache des pages PHP

Message le Jeu Avr 22, 2010 9:23

Lecture de la durée dans un ficher externe, qui pourra définir plusieurs durées qu'on pourra modifier à volonté.
Ou script de vidage du répertoire sur cron.

milkiway
WRInaute accro
WRInaute accro
 
Messages: 4994
Enregistré le: 3 Fév 2004

Re: [script] Mise en cache des pages PHP

Message le Jeu Avr 22, 2010 9:39

Et si je fais simplement
Code: Tout sélectionner
if (@filemtime($fichierCache)<time()-(3600*24)) { //si la page n'existe pas dans le cache ou si elle a expiré

?


OTP
Modérateur
Modérateur
 
Messages: 20163
Enregistré le: 16 Déc 2005

Re: [script] Mise en cache des pages PHP

Message le Jeu Avr 22, 2010 9:43

Si un jour tu veux changer la durée, tu changes toutes les pages...


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2446
Enregistré le: 20 Fév 2005

Re: [script] Mise en cache des pages PHP

Message le Dim Mai 02, 2010 9:26

Bonjour,

Quelqu'un peut il me dire pourquoi je trouve en cache des fichiers du style :
-cache--?sourcedir=http:--www.boomong.com-bbs--data-1.txt???
-cache-?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+CinmaEtMusiqueDePapaExtraitsDeMusiqueEtDeFilmsEnStreaming+(Cin%C3%A9ma+et+Musique+de+Papa+!+Extraits+de+Musique+et+de+Films+en+Streaming)

ou encore des fichiers aillent une taille à zéro ?

Merci

petitchevalroux
WRInaute discret
WRInaute discret
 
Messages: 190
Enregistré le: 31 Mai 2006

Re: [script] Mise en cache des pages PHP

Message le Mer Mai 26, 2010 11:24

Parce que le script cache toutes les requêtes même les 404 du moins dans la version de base.

Ainsi si je veux pourrir ton site et remplir ton disque je fais un script qui appel

une-de-tes-plus-grosse-page.php?dummy=x

avec X de 1 à 500000 et tu te retrouve avec un cache et un disque remplit :D


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2446
Enregistré le: 20 Fév 2005

Re: [script] Mise en cache des pages PHP

Message le Mer Mai 26, 2010 12:51

Oki, c'est ce que j'avais constaté également. Du coup j'effectue une vérification d'url.
Par contre, je ne sais toujours pas pourquoi j'ai des fichiers en cache avec une taille de zéro??

petitchevalroux
WRInaute discret
WRInaute discret
 
Messages: 190
Enregistré le: 31 Mai 2006

Re: [script] Mise en cache des pages PHP

Message le Mer Mai 26, 2010 13:25

Page vide je dirai ... faut voir ce que te retourne ton php sur ces pages ...


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2446
Enregistré le: 20 Fév 2005

Re: [script] Mise en cache des pages PHP

Message le Mer Mai 26, 2010 16:48

Oui, page vide du coté de la mise en cache sur quelques fichiers...

Pour pallier à quelques soucis dont celui la, je vérifie que l'url de la page appelé correspond bien à la l'url qui doit normalement s'affiché. Ensuite lors de l'appel au fichier en cache, je vérifie la taille de la page mise en cache, si elle est à zéro, je l'efface et la remet en cache.
J'ai peut être merdé quelque part mais je ne vois pas ou ??

petitchevalroux
WRInaute discret
WRInaute discret
 
Messages: 190
Enregistré le: 31 Mai 2006

Re: [script] Mise en cache des pages PHP

Message le Mer Mai 26, 2010 16:59

tryan a écrit: si elle est à zéro, je l'efface et la remet en cache


Et donc elle peut potentiellement resté à 0 si le contenu est vide :mrgreen:


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2446
Enregistré le: 20 Fév 2005

Re: [script] Mise en cache des pages PHP

Message le Jeu Mai 27, 2010 11:39

oui et je ne sais toujours pas pourquoi ???

petitchevalroux
WRInaute discret
WRInaute discret
 
Messages: 190
Enregistré le: 31 Mai 2006

Re: [script] Mise en cache des pages PHP

Message le Jeu Mai 27, 2010 13:04

Ben parce que ta page est vide, vérifie les urls qui le font. Cela peut arriver aussi lors d'une segfault une erreur ou autre ...


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2446
Enregistré le: 20 Fév 2005

Re: [script] Mise en cache des pages PHP

Message le Jeu Mai 27, 2010 17:18

petitchevalroux a écrit:..Cela peut arriver aussi lors d'une segfault ...

Quoi c'est ça une segfault :?:


OTP
Modérateur
Modérateur
 
Messages: 20163
Enregistré le: 16 Déc 2005

Re: [script] Mise en cache des pages PHP

Message le Jeu Mai 27, 2010 19:30


petitchevalroux
WRInaute discret
WRInaute discret
 
Messages: 190
Enregistré le: 31 Mai 2006

Re: [script] Mise en cache des pages PHP

Message le Ven Mai 28, 2010 5:17

Un crash complet de PHP ;)


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2446
Enregistré le: 20 Fév 2005

Re: [script] Mise en cache des pages PHP

Message le Ven Mai 28, 2010 11:29

Harff, j'ai crue que c'était une frappe de faute ^^...


finstreet
WRInaute accro
WRInaute accro
 
Messages: 18092
Enregistré le: 10 Juil 2005

Re: [script] Mise en cache des pages PHP

Message le Mer Juin 02, 2010 13:53

Bon ben je suis en cours de test sur une de mes pages :) Objectif : diminuer un peu la tension sur mon amie "Base de Données" :) Le code est très rapide à prendre en main, même si bien évidemment il faut l'adapter à chaque site. Et tout cas pour Mon bot Google, parce que Mossieur s'est installé à résidence

milkiway
WRInaute accro
WRInaute accro
 
Messages: 4994
Enregistré le: 3 Fév 2004

Re: [script] Mise en cache des pages PHP

Message le Dim Juin 20, 2010 11:06

J'ai un souci avec ce script.
Mon fichier caché commence par <?xml
Du coup, impossible de le lire car ça m'affiche
Parse error: syntax error, unexpected T_STRING on line 1

En effet il bloque sur l'ouverture <? ...

Comment faire ?


spout
WRInaute accro
WRInaute accro
 
Messages: 8335
Enregistré le: 14 Mai 2003

Re: [script] Mise en cache des pages PHP

Message le Dim Juin 20, 2010 11:58

- Désactiver les short_open_tag si tu ne les utilise pas (c'est déconseillé de les utiliser)
ou
- Enregistrer le cache dans une extension qui ne sera pas parsée par PHP

Pour les short_open_tag, soit dans php.ini ou via .htaccess:
Code: Tout sélectionner
php_flag short_open_tag off

milkiway
WRInaute accro
WRInaute accro
 
Messages: 4994
Enregistré le: 3 Fév 2004

Re: [script] Mise en cache des pages PHP

Message le Jeu Juil 29, 2010 15:54

Je vous propose une petite optimisation qui me fait gagner 4 à 10 % de poids sur mes fichiers.
Attention, source illisible après cette manip.
Fonctionne sur tous les navigateurs.

Dans la partie footer :
Code: Tout sélectionner
$contenuCache = ob_get_contents(); // on recuperre le contenu du buffer
   
//On supprime les caractères inutiles
$contenuCache = str_replace(CHR(10),"",$contenuCache);
$contenuCache = str_replace(CHR(7),"",$contenuCache);
$contenuCache = str_replace(CHR(13)," ",$contenuCache);
$contenuCache = str_replace("  "," ",$contenuCache);

   ob_end_flush();// on termine la bufferisation
   if($cacheactive == 1) {
   $fd = fopen("$fichierCache", "w"); // on ouvre le fichier cache
   if ($fd) {
      fwrite($fd,$contenuCache); // on ecrit le contenu du buffer dans le fichier cache
      fclose($fd);
   }
    }
} else { // le fichier cache existe déjà
include ($fichierCache); // on le copie ici
}

Je vous laisse le soin de faire un Array de remplacement si ça vous parait plus clean.


finstreet
WRInaute accro
WRInaute accro
 
Messages: 18092
Enregistré le: 10 Juil 2005

Re: [script] Mise en cache des pages PHP

Message le Ven Aoû 06, 2010 16:32

milkiway a écrit:Je vous propose une petite optimisation qui me fait gagner 4 à 10 % de poids sur mes fichiers.
Attention, source illisible après cette manip.
Fonctionne sur tous les navigateurs.


J'ai testé à l'arrache, ca m'a tout planté mes javascripts

Bon sinon, je voulais faire un post dédié à Fandecine mais finalement vais juste faire une réponse. Suis feignant :) Bon alors je vois trainer ce post épinglé depuis pas mal de temps, et depuis pas mal de temps... ben je l'ai laissé là sans rien faire. Et puis je me suis dit, il faut que je le teste vraiment. J'ai testé. Vraiment. Résultat : ma machine n'est plus à genoux du tout, je vais même en profiter pour prendre un serveur moins dimensionné et donc moins cher. Et je vais étendre le cache à l'ensemble du site (pour l'instant il ne l'est qu'à quelques rubriques gourmandes)

Je vous montrerais bien des graphs pour vous montrer mais impossible de trouver avec des échelles significatives :) Bref, un très grand merci à Fandecine.


Formation recommandée sur ce thème :

Formation SEO spéciale Wordpress : apprenez à optimiser le référencement naturel d'un site fait avec Wordpress... Formation Ranking Metrics animée par un expert SEO / Wordpress.

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

Lectures recommandées sur ce thème :