[script] Mise en cache des pages PHP
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
- Furinkazan
- Nouveau WRInaute
- Messages: 10
- Inscription: Lun Nov 02, 2009 14:18
Re: [script] Mise en cache des pages PHP
Regarde le manuel de la fonction ob_start() : http://php.net/manual/en/function.ob-start.php
Tant que j'y suis, j'ai une question : comment éviter la création intempestive de caches ? Je m'explique :
Nos pages mises en cache sont de la forme .../index.php?page=x avec x qui varie de 1 à n. La mise en cache doit se faire uniquement si la page existe. Il faut donc ajouter un test.
Le problème c'est que dans mon cas, je fais un test du style :
if($_GET[page] est correct)
on affiche la page
else
on affiche index.php?page=1
Le pb ici c'est qu'il y a tout de même création en cache de la page non autorisée par exemple avec x > n. Vous me direz de faire ce test avant le traitement du cache, mais le souci c'est qu'il doit se faire justement en cache, car je ne connais pas avant le nombre de pages.
Si quelqu'un a compris qq chose et à une solution, je suis preneur !!
Tant que j'y suis, j'ai une question : comment éviter la création intempestive de caches ? Je m'explique :
Nos pages mises en cache sont de la forme .../index.php?page=x avec x qui varie de 1 à n. La mise en cache doit se faire uniquement si la page existe. Il faut donc ajouter un test.
Le problème c'est que dans mon cas, je fais un test du style :
if($_GET[page] est correct)
on affiche la page
else
on affiche index.php?page=1
Le pb ici c'est qu'il y a tout de même création en cache de la page non autorisée par exemple avec x > n. Vous me direz de faire ce test avant le traitement du cache, mais le souci c'est qu'il doit se faire justement en cache, car je ne connais pas avant le nombre de pages.
Si quelqu'un a compris qq chose et à une solution, je suis preneur !!
- Furinkazan
- Nouveau WRInaute
- Messages: 10
- Inscription: Lun Nov 02, 2009 14:18
Re: [script] Mise en cache des pages PHP
Bon, j'ai finalement trouvé une solution. J'avais tout simplement mal conçu le site. Sinon, si ça intéresse quelqu'un, j'ai mis en place un système de templates avec caches (ou sans cache). Le tout en MVC (Model, View, Controller) qui marche nickel.
- Furinkazan
- Nouveau WRInaute
- Messages: 10
- Inscription: Lun Nov 02, 2009 14:18
Re: [script] Mise en cache des pages PHP
Je défini un template avec ou sans cache dans un fichier exemple.php. Ce template est effectivement un objet qui contient ce que l'on veut par exemple :
- le fichier template associé $exemple->setTemplate($_PATH_TO_TPL."exemple.tpl.php");
- un titre : $exemple->set('title', "le titre");
- un array de trucs : $exemple->set('list', array("lien1", "lien2", "lien3"));
- ...
Dans ce fichier on effectue les traitements. (le Controlleur). Par exemple les if ( isset ( $_POST['valid'] ) ) ...
Le template associé ne contient que les balises <div> et autres dans un fichier exemple.tpl.php. (Le Modèle).
Dans ce fichier on affiche les objets contenus dans le template. Par exemple le titre : <DIV id="titre"><?=$title?></DIV>
Le style est dans un fichier css. (la Vue).
Si c'est un template avec cache, bein on affiche le cache au lieu de faire le traitement du Controlleur.
Je posterais ici un exemple simple sous peu pour plus de détails.
- le fichier template associé $exemple->setTemplate($_PATH_TO_TPL."exemple.tpl.php");
- un titre : $exemple->set('title', "le titre");
- un array de trucs : $exemple->set('list', array("lien1", "lien2", "lien3"));
- ...
Dans ce fichier on effectue les traitements. (le Controlleur). Par exemple les if ( isset ( $_POST['valid'] ) ) ...
Le template associé ne contient que les balises <div> et autres dans un fichier exemple.tpl.php. (Le Modèle).
Dans ce fichier on affiche les objets contenus dans le template. Par exemple le titre : <DIV id="titre"><?=$title?></DIV>
Le style est dans un fichier css. (la Vue).
Si c'est un template avec cache, bein on affiche le cache au lieu de faire le traitement du Controlleur.
Je posterais ici un exemple simple sous peu pour plus de détails.
Re: [script] Mise en cache des pages PHP
@Furinkazan
Comme ce système de templates: http://www.massassi.com/php/articles/template_engines/
Mais tu as juste le V et C de MVC, c'est pour ça que je m'étonnais de MVC
N.B.: évite les short tags <?=$title;?> préfère plutôt <?php echo $title;?>
Comme ce système de templates: http://www.massassi.com/php/articles/template_engines/
Mais tu as juste le V et C de MVC, c'est pour ça que je m'étonnais de MVC
N.B.: évite les short tags <?=$title;?> préfère plutôt <?php echo $title;?>
-

screuscreu - WRInaute passionné

- Messages: 929
- Inscription: Lun Jan 14, 2008 12:14
Re: [script] Mise en cache des pages PHP
spout a écrit:N.B.: évite les short tags <?=$title;?> préfère plutôt <?php echo $title;?>
Et pourquoi donc ? Y a t'il une différence de vitesse ? des bugs ou autres ?
Ou juste un code pas forcement portable sur d'autres serveurs pas configurés pour comprendre les short tags ?
- Furinkazan
- Nouveau WRInaute
- Messages: 10
- Inscription: Lun Nov 02, 2009 14:18
Re: [script] Mise en cache des pages PHP
spout a écrit:@Furinkazan
Comme ce système de templates: http://www.massassi.com/php/articles/template_engines/
Ouais en fait je me suis basé sur ce site pour mes templates, en l'améliorant un peu ^^.
spout a écrit:Mais tu as juste le V et C de MVC, c'est pour ça que je m'étonnais de MVC
N.B.: évite les short tags <?=$title;?> préfère plutôt <?php echo $title;?>
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.
-

petitchevalroux - WRInaute occasionnel

- Messages: 108
- Inscription: Mer Mai 31, 2006 11:13
Re: [script] Mise en cache des pages PHP
...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 ?????
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
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 ...
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 :
- Les albums web Picasa passent à 1 Go de stockage
- Le cache de Google : description, explications
- Photos satellite des incendies en Grèce dans Google Earth
- L'algorithme de Google en résumé (mars 2003)
- Ajouter un Gadget Google sur son site
- Google Desktop pour Mac OS X
- Picasa Web Albums en français
- Google Pack s'enrichit de 2 nouveaux logiciels gratuits
- Explications sur le Crawl Caching Proxy de Google
- Nouvel article : "Google en résumé"
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



le forum