Smarty Forum Index Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon.

mise en cache fichier distant

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French
View previous topic :: View next topic  
Author Message
gtraxx
Smarty Regular


Joined: 08 Jan 2008
Posts: 56

PostPosted: Tue Nov 24, 2009 7:58 am    Post subject: mise en cache fichier distant Reply with quote

Bonjour à tous, j'ai une question sur la mise en cache.
J'utilise smarty 3 et je vérifie un fichier xml local au domaine, en gros je scanne le fichier xml et je le compare avec une version distante (autre domaine) afin de voir si les version sont similaire.
Pour l'instant, j'ai ceci :
Code:

 
<?xml version="1.0" encoding="UTF-8" ?>
<version>2.0.0</version>



Par souci de performance, je souhaite mettre le résultat en cache afin de ne pas devoir chaque fois me connecter au serveur distant et comparer.
Voila le script très simpliste :
Code:
if(file_get_contents('http://monsite.com')){
         $mage = $xml->open('http://monsite.com'.'/version.xml', "UTF-8");
         $m = '';
         while($xml->read()){
            if ($xml->hasValue){
               $m .= $xml->value;
            }
         }
         if(self::read_local_version() == $m){
            return 'Vous utilisez la dernière version';
         }elseif(self::read_local_version() < $m){
            return 'Une nouvelle version est disponible';
         }
      }
 


Une version en cache qui serai régénérer uniquement à la connexion et détruit à la déconnexion.
Pourquoi pas aussi boosté un peu le xml très pauvre (indiqué alpha, béta ou RC, stable...)
Je suppose que l'ont peu mettre ce genre de fichier dans le cache ou peut être utiliser une autre méthode afin de garder le flux temporairement dans l'appli (faut éviter le requête inutile )
Back to top
View user's profile Send private message
Gowser
Smarty Pro


Joined: 19 Feb 2008
Posts: 104
Location: Nantes (France)

PostPosted: Fri Dec 04, 2009 4:37 pm    Post subject: Reply with quote

Bonjour,

Pourquoi ne pas faire le test de version dans votre connexion en supprimant le tpl contenant la version du cache.

Si je comprends bien la question posée, cela se résumerait donc à :

Code:

function connexion(){
   ...
   // ici tout le code de connexion a l'application
   ...
   
   // recuperation de la version (copier coller de ton code)
   if(file_get_contents('http://monsite.com')){
      $mage = $xml->open('http://monsite.com'.'/version.xml', "UTF-8");
      $m = '';
      while($xml->read()){
         if ($xml->hasValue){
            $m .= $xml->value;
         }
      }
      if(self::read_local_version() == $m){
         $version = 'Vous utilisez la dernière version';
      }elseif(self::read_local_version() < $m){
         $version = 'Une nouvelle version est disponible';
      }
   }
   
   // si une version a ete recuperee
   if(!empty($version)){
      // on suppose que le cache est actif
      
      // instance de smarty
      $smarty = new Smarty();
      
      // suppression du tpl du cache
      $smarty->clear_cache('tpl_qui_affiche_la_version.tpl');
      
      // ajout de la version au fichier
      $smarty->assign('version', $version);
      
      // creation de la nouvelle version en cache
      $smarty->fetch('tpl_qui_affiche_la_version.tpl');
   }
}



C'est ca qui est voulu ?
Back to top
View user's profile Send private message Send e-mail
gtraxx
Smarty Regular


Joined: 08 Jan 2008
Posts: 56

PostPosted: Fri Dec 11, 2009 8:55 pm    Post subject: Reply with quote

Je suppose que la suppression du cache est préférable à la déconnexion de l'administration et la régénération à la connexion.
Sa éviterai de regénéré le cache chaque fois que je suis sur cette page qui affiche la version.
Par contre je ne me souviens plus comment ne pas mettre en cache des données dynamique, je suppose que le principe est le même sous smarty 3
Back to top
View user's profile Send private message
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Protected by Anti-Spam ACP