J'automatise les configurations de versions en amorçant Mage dans plusieurs scripts de versions. À la fin des scripts, je dois vider le cache de Magento.
Existe-t-il un moyen de vider le cache en utilisant l'une des Mage
classes ou méthodes?
J'automatise les configurations de versions en amorçant Mage dans plusieurs scripts de versions. À la fin des scripts, je dois vider le cache de Magento.
Existe-t-il un moyen de vider le cache en utilisant l'une des Mage
classes ou méthodes?
Réponses:
Veuillez essayer le code suivant pour vider le cache par programme
Mage::app()->cleanCache()
ou
Mage::app()->getCacheInstance()->flush();
Si vous le vouliez vraiment, vous pouvez également nettoyer un ou plusieurs types de cache. C'est en fait la façon dont la section admin le fait. En dessous deMage_Adminhtml_CacheController::massRefreshAction
Vous pouvez voir qu'il parcourt tous les paramètres types
et appelle ce qui suit
$tags = Mage::app()->getCacheInstance()->cleanType($type);
Mage::dispatchEvent('adminhtml_cache_refresh_type', array('type' => $type));
$updatedTypes++;
Les types possibles sont les suivants:
Et ceux-ci peuvent être retournés en appelant Mage::app()->getCacheInstance()->getTypes()
Un script externe rapide pour vider tout le cache:
<?php
require_once './app/Mage.php';
umask(0);
Mage::app('default');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
try {
$allTypes = Mage::app()->useCache();
foreach($allTypes as $type => $value) {
Mage::app()->getCacheInstance()->cleanType($type);
Mage::dispatchEvent('adminhtml_cache_refresh_type', array('type' => $type));
echo "{$type} </br>";
}
echo 'done';
} catch (Exception $e) {
echo $e->getMessage();
}
Notre nous pourrions utiliser n98-magerun . D'autant plus que vous ne devez jamais vider le cache lors de l'exécution des scripts de déploiement. Regardez également la sys:setup:incremental
sous - commande pour une exécution plus contrôlée des scripts de configuration de Magento.
Si vous avez vraiment besoin d'effacer tous les stockages de cache, utilisez le code suivant,
Mage::app()->getCacheInstance()->flush();
Ici, la fonction Flush appelle la fonctionnalité de cache magento par défaut.Si vous avez besoin de plus de clarifications, reportez-vous à l'url suivante.