Categories > TinyButStrong general (FR) >

Mettre en cache ce que l'on veut ?

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
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].