回答:
次のコードを試して、プログラムでキャッシュをフラッシュしてください
Mage::app()->cleanCache()
または
Mage::app()->getCacheInstance()->flush();
本当に必要な場合は、1つ以上のキャッシュタイプのみを削除することもできます。これは、実際には管理セクションが行う方法です。下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を参照してください。