Answers:
如果您确实需要,也可以只清除一种或多种缓存类型。这实际上是管理员部分的操作方式。下Mage_Adminhtml_CacheController::massRefreshAction
您可以看到它遍历所有参数types
并调用以下命令
$tags = Mage::app()->getCacheInstance()->cleanType($type);
Mage::dispatchEvent('adminhtml_cache_refresh_type', array('type' => $type));
$updatedTypes++;
可能的类型如下:
这些可以通过调用返回 Mage::app()->getCacheInstance()->getTypes()
快速的外部脚本清除所有缓存:
<?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();
}
我们可以使用n98-magerun。尤其是因为您永远不要在部署脚本执行期间刷新高速缓存。还可以查看sys:setup:incremental
子命令,以更受控地执行Magento设置脚本。
如果您确实需要清除所有缓存存储区,则意味着使用以下代码,
Mage::app()->getCacheInstance()->flush();
这里Flush函数调用默认的magento缓存功能,如果需要更多说明,请参考以下url。