By: iMaTh
Date: 2007-08-21
Time: 11:33
|
Mettre en cache ce que l'on veut ?
Bonjour, j'utilise TBS dans le cadre d'un grand projet et je me pose une question :
Est il possible de ne pas mettre en cache certaines variables ?
<?php
session_start();
require_once('Class.Template.inc');
require_once('Zend/Date.php');
require_once('Class.Cache_Template.php');
$TBS = new clsTinyButStrong ;
$TBS->PlugIn(TBS_CACHE, 'mainPage', '3600', 'tmp');
$TBS->LoadTemplate('templates/Header.tpl');
$TBS->LoadTemplate('templates/Menu.tpl', '+');
$TBS->LoadTemplate('templates/Footer.tpl', '+');
$title = 'SuperSite' ;
$login = $_SESSION['LOGIN'];
$TimeStamp = new Zend_Date();
$date = $TimeStamp->toString('dd MMMM y');
$heure = $TimeStamp->toString('HH') .'h' .$TimeStamp->toString('mm') .'mn';
$TBS->Show() ;
?>
ici il me met tout en cache ce qui est normal, seulement le $_SESSION['LOGIN'] ne doit pas etre en cache sinon pendant la durée du cache tout le monde aura le meme nom.
Comment l'exclure ?
|
By: Skrol29
Date: 2007-08-21
Time: 23:48
|
Re: Mettre en cache ce que l'on veut ?
Salut,
Oui tu peux réserver certaines fusions hors cache.
Pour cela tu dois forcer la mise en cache à un moment voulu. Voici comment tu peux faire : (non testé)
$TBS = new clsTinyButStrong ;
if ($TBS->PlugIn(TBS_CACHE, 'mainPage', 3600, 'tmp')==false) {
$TBS->LoadTemplate('templates/Header.tpl');
$TBS->LoadTemplate('templates/Menu.tpl', '+');
$TBS->LoadTemplate('templates/Footer.tpl', '+');
$title = 'SuperSite' ;
$TimeStamp = new Zend_Date();
$date = $TimeStamp->toString('dd MMMM y');
$heure = $TimeStamp->toString('HH') .'h' .$TimeStamp->toString('mm') .'mn';
/ enregistrement du résultat intermédiaire en cache
$TBS->PlugIn(TBS_CACHE, 'mainPage', TBS_CACHENOW);
}
$login = $_SESSION['LOGIN'];
$TBS->Show();
|
|
By: iMaTh
Date: 2007-08-22
Time: 01:25
|
Re: Mettre en cache ce que l'on veut ?
Non le $login = $_SESSION['LOGIN']; est tout de meme mit en cache ce qui est enormement embetant lorsque tu veu faire un system d'autentification.
|
By: Skrol29
Date: 2007-08-23
Time: 00:38
|
Re: Mettre en cache ce que l'on veut ?
ha ouai je vois un truc qui va pas dans mon code,
remplace
$TBS->PlugIn(TBS_CACHE, 'mainPage', TBS_CACHENOW);
|
par
$TBS->PlugIn(TBS_CACHE, 'mainPage', TBS_CACHENOW);
$TBS->PlugIn(TBS_CACHE, 'mainPage', TBS_CACHECANCEL);
|
|
By: iMaTh
Date: 2007-08-23
Time: 01:06
|
Re: Mettre en cache ce que l'on veut ?
le TBS_CACHECANCEL permet de dire ce qu'on ne veut pas en cache
donc j'entoure ce que je veu en cache avec TBS_CACHENOW
et ce que je veu pas avec TBS_CACHECANCEL ?
j'ai pas encore testé je le ferai demain soir la je suis crevé.
merci de la reponse.
|
By: Skrol29
Date: 2007-08-24
Time: 23:32
|
Re: Mettre en cache ce que l'on veut ?
Non c'est pas ça.
Quand le plug-in décide qu'il est temps de rafraichire le cache, alors il ne faut pas le faire jusqu'au bout. il faut laisser le champs TBS qui va fusionner $login (d'ailleurs quel est ce champs ? si c'est un [onbload] c'est pas bon).
TBS_CACHENOW force la mise en cache immédiate du contenu de la fusion.
TBS_CACHECANCEL indique de ne pas refaire la mise en cache quand on va appeler Show().
|
By: iMaTh
Date: 2007-08-25
Time: 10:04
|
Re: Mettre en cache ce que l'on veut ?
dans le template j'ai mit ceci [var.login].
|
|
Posting in progress.
Please wait...
|