|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
gtraxx Smarty Regular
Joined: 08 Jan 2008 Posts: 56
|
Posted: Tue Nov 24, 2009 7:58 am Post subject: mise en cache fichier distant |
|
|
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 |
|
Gowser Smarty Pro
Joined: 19 Feb 2008 Posts: 104 Location: Nantes (France)
|
Posted: Fri Dec 04, 2009 4:37 pm Post subject: |
|
|
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 |
|
gtraxx Smarty Regular
Joined: 08 Jan 2008 Posts: 56
|
Posted: Fri Dec 11, 2009 8:55 pm Post subject: |
|
|
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 |
|
|
|
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
|