Comment utiliser Cache_Lite??

WRInaute occasionnel
Bonjour je voudrais essayer pear/cache_lite, mais avec la documentation trouvée sur le net je n'arrive pas ç le faire fonctionner.

Voilà comment je m'y suis pris.
J'ai uploadé Lite.php à la racine du de mon ftp. j'ai ensuite créé un répertoire cache en chmod 777.

j'ai créé un fichier test.php à la racine du ftp :
Code:
<?php
// On charge Cache_Lite
require_once('Lite.php');

// On fixe un identifiant pour la page
$id = 'divisible_par_7';

// On définit quelques options :
// - le répertoire où seront stockés les fichiers de cache
// - la durée de vie du cache (ici 30 secondes)
$options = array(
  'cacheDir' => '/cache/',
  'caching'=> true,
  'lifeTime' => 3000
  );

// On crée un objet Cache_Lite avec les options précédentes
$Cache_Lite = new Cache_Lite($options);

// Si la page est dans le cache...
if ($data = $Cache_Lite->get($id)) {
  // ... on affiche le contenu du cache
  echo($data);
  // Si la page n'est pas dans le cache...
  }
else {
    // ...on calcule la page
    // On retrouve donc le source précédent...
    $result = '';
    for($i = 0 ; $i<10000 ; $i++) {
      if (($i % 7)==0) {
        $result = $result . $i;
        $result = $result . '<br>';
      }
    }
  echo($result);
  // ... mais à la fin, on n'oublie pas de stocker le résultat
  // dans le cache !
  $Cache_Lite->save($result);
  }
?>

Le code ci-dessus est repris d'un exemple de l'auteur de PEAR/cache_lite.

En lançant la page, ça m'affiche ce qu'il faut, cependant aucun fichier n'est généré dans le dossier cache...

si quelqu'un pouvait m'aider sur la façon dont il faut s'y prendre. merci
 
WRInaute accro
Dans l'exemple que tu montres, tu veux écrire le cache dans /cache/ qui se trouve à la racine du système de fichiers.

Créé un répertoire cache où PHP (apache) peux écrire dedans
et met le chemin complet pour Cache_Lite

NB: Concernant l'id de cache, je me base sur request_uri:
Code:
<?php
$cache_id = md5($_SERVER['REQUEST_URI']);
?>
 
WRInaute occasionnel
Hmm j'ai donc mis le chemin absolu concernant Cache_Lite.
J'ai créé le répertoire cache en chmod 777 à la racine du site.
Mais celui ci reste toujours vide. :cry:

Je préfère mettre un Id avec un nom car je ne cache pas toute la page, simplement des requêtes sql. Mais si je ne comprends pas comment ç a fonctionne... :p
 
WRInaute passionné
pour tester si le cache marche ou pas ajoute l'heure courante dans ton $result.

Le code a l'air correct. Tu n'as aucun msg d'erreur ?
 
WRInaute occasionnel
non je n'ai pas de message d'erreur, simplement, le cache reste vide.
Je vais reprendre à zéro, je ne sais meêm pas si j'ai bien uploadé les bons fichiers.

voilà l'arborescence :

A la racine :
test.php
Lite.php
Dossier Lite
Dossier tests

je n'ai pas compris le truc de la date, si le dossier cache est vide c'est que ça ne arche pas n'est ce pas?

merci pour votre aide
 
WRInaute passionné
wasabi a dit:
je n'ai pas compris le truc de la date, si le dossier cache est vide c'est que ça ne arche pas n'est ce pas?

merci pour votre aide

ou tu as peut-être une erreur de config quelques part.
Ajoute à ta variable $result un truc du genre : $result .= date();

comme ça à chaque exécution de ton script la date s'affichera. tu pourras savoir si le contenu affiché a été généré ou s'il vient du cache.

[EDIT]
Je viens de retrouver un vieux code php qui utilisait la classe Cache_Lite

Code:
	$setting = array (
		  'dsn' 			=> 'mysql://****:@*****/****'
		, 'utf8' 			=> true
		, 'admin' 			=> false
		, 'cache' 			=> true
		, 'langue' 			=> 1
		, 'debug'			=> true
		, 'cache_dir'		=> "tmp/cache/"
		, 'cache_time'		=> 3600
 	) ;

Une des différences avec ta config se situe au niveau de la configuration de cache-dir.
Tu as peut-être un pb de path. Dans ton cas essaye
cache/
sans le / devant pour voir si ça change qqchose

Dans mon cas le répertoire tmp se situait à la racine du site. Comme tu peux le voir mon path était : tmp/cache et non pas /tmp/cache.
 
WRInaute occasionnel
Merci t'es super spidetra.

C'était bien le /. Je vais essayer ce que je voulais faire à l'origine je te tiens au courant si j'ai pb.

grand merci ;)
 
Discussions similaires
Haut