Sto automatizzando le configurazioni di rilascio avviando Mage in diversi script di rilascio. Alla fine degli script, devo svuotare la cache di Magento.
C'è un modo per svuotare la cache usando una delle Mage
classi o metodi?
Sto automatizzando le configurazioni di rilascio avviando Mage in diversi script di rilascio. Alla fine degli script, devo svuotare la cache di Magento.
C'è un modo per svuotare la cache usando una delle Mage
classi o metodi?
Risposte:
Prova il codice seguente per svuotare la cache a livello di codice
Mage::app()->cleanCache()
o
Mage::app()->getCacheInstance()->flush();
Se lo desideri, puoi anche pulire solo uno o più tipi di cache. Questo è in realtà il modo in cui la sezione admin lo fa. SottoMage_Adminhtml_CacheController::massRefreshAction
Puoi vedere che scorre attraverso tutti i parametri types
e chiama quanto segue
$tags = Mage::app()->getCacheInstance()->cleanType($type);
Mage::dispatchEvent('adminhtml_cache_refresh_type', array('type' => $type));
$updatedTypes++;
I tipi possibili sono i seguenti:
E questi possono essere restituiti chiamando Mage::app()->getCacheInstance()->getTypes()
Un rapido script esterno per cancellare tutta la 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();
}
Potremmo usare n98-magerun . Soprattutto dal momento che non si dovrebbe mai svuotare la cache durante l'esecuzione degli script di distribuzione. Guarda anche il sys:setup:incremental
sottocomando per un'esecuzione più controllata degli script di installazione di Magento.
Se hai davvero bisogno di cancellare tutti gli archivi della cache significa usare il seguente codice,
Mage::app()->getCacheInstance()->flush();
Qui la funzione Flush chiama la funzionalità cache magento predefinita, se hai bisogno di ulteriori chiarimenti significa fare riferimento al seguente URL.