Estou automatizando as configurações de lançamento, inicializando o Mage em vários scripts de lançamento. No final dos scripts, preciso liberar o cache do Magento.
Existe uma maneira de liberar o cache usando uma das Mage
classes ou métodos?
Estou automatizando as configurações de lançamento, inicializando o Mage em vários scripts de lançamento. No final dos scripts, preciso liberar o cache do Magento.
Existe uma maneira de liberar o cache usando uma das Mage
classes ou métodos?
Respostas:
Por favor, tente o código a seguir para liberar o cache programaticamente
Mage::app()->cleanCache()
ou
Mage::app()->getCacheInstance()->flush();
Se você realmente quisesse, também poderia limpar apenas um ou mais tipos de cache. É assim que a seção do administrador faz isso. SobMage_Adminhtml_CacheController::massRefreshAction
Você pode ver que ele percorre todos os parâmetros types
e chama o seguinte
$tags = Mage::app()->getCacheInstance()->cleanType($type);
Mage::dispatchEvent('adminhtml_cache_refresh_type', array('type' => $type));
$updatedTypes++;
Os tipos possíveis são os seguintes:
E estes podem ser retornados chamando Mage::app()->getCacheInstance()->getTypes()
Um script externo rápido para limpar todo o 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();
}
Nós poderíamos usar o n98-magerun . Especialmente porque você nunca deve liberar o cache durante a execução de scripts de implantação. Veja também o sys:setup:incremental
subcomando para uma execução mais controlada dos scripts de instalação do Magento.
Se você realmente precisar limpar todos os armazenamentos de cache, use o código a seguir,
Mage::app()->getCacheInstance()->flush();
Aqui a função Flush chama a funcionalidade padrão do cache magento. Se você precisar de mais esclarecimentos, consulte o seguinte URL.