Le cache d'ECSHOP est stocké dans le dossier templates/caches/article Au fil du temps, ce dossier deviendra très volumineux et ralentira le site Web. Il existe de nombreuses situations dans lesquelles nous n'avons pas besoin de son cache. Cet article décrit comment désactiver la mise en cache ECSHOP.
Le cache d'ECSHOP comporte deux parties, l'une est le cache des pages de SMARTY ; l'autre est le cache des résultats des requêtes SQL. Les deux parties sont enregistrées dans le dossier templates/caches/. Tant que nous désactivons respectivement ces deux fonctions, nous pouvons désactiver complètement le cache d'ECSHOP. Bien entendu, vous pouvez également en désactiver un selon vos besoins.
Recommandé (gratuit) : ecshop
1 Désactivez le cache de SMARTY
Ouvrir<.>, recherchez le paragraphe suivant includes/cls_template.php
if (file_put_contents($this->cache_dir . ‘/’ . $cachename . ‘.php’, ‘<?php exit;?>’ . $data . $out) === false) { trigger_error(‘can’t write:’ . $this->cache_dir . ‘/’ . $cachename . ‘.php’); }
2. Désactivez le cache des résultats des requêtes SQL
Activezincludes/cls_mysql.php
var $max_cache_time=3600;//最大的缓存时间,以秒为单位
var $max_cache_time=0;//最大的缓存时间,以秒为单位
1. Désactivez la mise en cache de certaines tables de données dans ecshop
Les fichiers de cache dans le dossier caches dans ecshop incluent le cache des résultats de requête SQL et le cache de page de modèle SMARTY. Si de nombreux utilisateurs visitent le site Web, ces données temporaires mises en cache seront conservées dans le dossier « modèles/caches » d'ECshop. La mise en cache des données joue un certain rôle dans l'amélioration de la vitesse des boutiques en ligne, mais trop de fichiers mis en cache, c'est trop. Certaines personnes disent que vous pouvez simplement désactiver la mise en cache pour ces 2 tables. favourable_activity,goods_activity
$db->set_disable_cache_tables(array($ecs->table(’sessions’), $ecs->table(’sessions_data’), $ecs->table(’cart’)));
$db->set_disable_cache_tables(array($ecs->table(’sessions’), $ecs->table(’sessions_data’), $ecs->table(’cart’), $ecs->table(’favourable_activity’), $ecs->table(’goods_activity’)));
2 , Désactivez complètement le cache ecshop
Connectez-vous régulièrement au backend de la boutique en ligne ecshop pour vider les fichiers du cache, ce qui est assez gênant pour les paresseux. Ensuite, désactivez simplement complètement la mise en cache d’Ecshop. Reportez-vous à l'article de Xiao Chong sur la désactivation du cache echsop. Le code spécifique de Xiao Chong concerne la version 2.6.0. La méthode de désactivation de la modification du cache dans ecshop 2.7 est similaire : 1. Utilisez editplus pour ouvrir include/cls_template.php et commentez le code suivant : Code PHP 2. Utilisez editplus Ouvrez include/cls_mysql.php, recherchez max_cache_time = 300 et remplacez 300 par 03 Les fichiers sous modèles/compilés peuvent-ils être effacés ?<🎜. >templates Les fichiers sous /compiled sont des fichiers compilés de modèles et peuvent être effacés. Il sera régénéré lorsque l'utilisateur naviguera sur la boutique en ligne. Le principal problème dans le dossier des modèles est qu'il y a trop de fichiers cache dans les caches. Vous pouvez vider le cache ecshop régulièrement ou le désactiver complètement.
——————————————————————————————————————————— —————————— --
Suggestions pour vider le cache !!
J'ai trouvé que la suppression du cache actuelle est relativement difficile. Il n'y a pas de grand changement par rapport à avant ! C'est la même chose que la version 2.0.5.
Tant qu'il y a une opération de modification en arrière-plan, tout le cache sera supprimé ! Tous les éléments utilisés sont $smarty->clear_all_cache();
Inconvénients : Si j'ai 100 000 produits et qu'ils ont tous été consultés, une seule opération en arrière-plan nécessite de vider plus de 150 000 fichiers cache :) Cela semble un peu extrême
Juste un exemple !! , j'espère qu'ECSHOP sera plus parfait !
N'y a-t-il pas cette fonction dans smarty ?
clear_cache(), j'ai fait une petite modification et ajouté que vous pouvez spécifier de supprimer le cache dans un certain répertoire. Le but est : vous pouvez facilement supprimer le cache de catégorie du produit !
Je suis sur 2.0.5 Ceci est modifié et un répertoire de cache
est créé dans le répertoire racine, et y est créé. Quatre dossiers sont utilisés pour stocker le contenu de l'article, la liste d'articles, le contenu du produit et le cache de la liste de produits templates_caches
article,article_cat,goods,goods_cat
Exemple : Modifications de droite apportées aux parties du produit et de l'article
Ajouter le code suivant au front-end init.php et au back-end init.php. Je l'ai ajouté directement à config.php pour plus de commodité
//缓存目录设置 define('ECS_ROOT', substr(dirname(__FILE__), 0, -8));//前后台数字当然不一样了:) //文章缓存 $cache_dir_article = ECS_ROOT.'./templates_caches/article'; $cache_dir_article_cat = ECS_ROOT.'./templates_caches/article_cat'; //商品缓存 $cache_dir_goods = ECS_ROOT.'./templates_caches/goods'; $cache_dir_goods_cat = ECS_ROOT.'./templates_caches/goods_cat';
Contenu du produit front-end et temps de cache des catégories Les paramètres individuels sont plus longs, comme un mois pour le contenu et un jour pour la classification.
Modifier l'arrière-plan Lorsque le produit est modifié individuellement, seul le cache du contenu du produit sera supprimé
Tant qu'il y sera. est une opération de modification, le cache et la catégorie du produit seront supprimés. Le cache de la page d'accueil ajoutera les
$smarty->clear_cache(null, null, null, null, $cache_dir_goods_cat);//zouql:删除商品目录缓存,默认缓存时间 $smarty->clear_cache('goods.html', $goods_id, null, null, $cache_dir_goods);//zouql:删除商品缓存,默认缓存时间
suivants et la gestion des publicités, etc., etc., etc. doit être modifiée !
Le cache produit sera automatiquement supprimé après les commentaires des utilisateurs front-end, etc.... ......
function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null, $cache_dir = null) { if (!isset($cache_dir)) $cache_dir = $this->cache_dir; if (!isset($compile_id)) $compile_id = $this->compile_id; if (!isset($tpl_file)) $compile_id = null; $_auto_id = $this->_get_auto_id($cache_id, $compile_id); if (!empty($this->cache_handler_func)) { return call_user_func_array($this->cache_handler_func, array('clear', &$this, &$dummy, $tpl_file, $cache_id, $compile_id, $exp_time)); } else { $_params = array('auto_base' => $cache_dir, 'auto_source' => $tpl_file, 'auto_id' => $_auto_id, 'exp_time' => $exp_time); require_once(SMARTY_CORE_DIR . 'core.rm_auto.php'); return smarty_core_rm_auto($_params, $this); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!