質問
構成設定と税率に基づいた値を計算します。
それらのInfosの1つが変更されたときに自動的にクリアされるように、どのようにキャッシュできますか?
これはすべて、適切なタグを使用することについてです。そうすれば、自動的にクリアされますか?
解決
構成パーツの場合、アイテムを保存するときに構成キャッシュタグを追加できます。
Mage::app()->saveCache($data, $id, array(
Mage_Core_Model_Config::CACHE_TAG
), $lifeTime=false);
このタグがクリアされるたびに、キャッシュされたアイテムが削除されます。
残念ながら、これは税の設定に及ぶものではなく、税制固有のタグはありません。代わりに、独自のキャッシュタグを作成できます(MY_TAX_CACHE_TAG
).
Mage::app()->saveCache($data, $id, array(
Mage_Core_Model_Config::CACHE_TAG,
'MY_TAX_CACHE_TAG'
), $lifeTime=false);
さらに、オブザーバーを作成する必要があります tax_settings_change_after
.
class Observer
{
public function taxSettingsChangeAfter($observer)
{
Mage::app()->cleanCache('MY_TAX_CACHE_TAG');
}
}
他のヒント
これは、アイテムをキャッシュに保存し、しばらくしてから期限切れになるための戦略です(この例では10800秒、または3時間)。
$mydataforcache = "My data for cache";
$cache_name = "mycachename";
$CACHEDATA = MAGE::app()->loadCache($cache_name);
if (isset($CACHEDATA) && ($CACHEDATA != "")){
// Use data
echo $CACHEDATA;
} else {
// Save data to cache
Mage::app()->saveCache($mydataforcache, $cache_name, array(), 10800);
}
ソース: http://www.g31zone.com/?tag=magento-save-data-to-cache
キャッシュからこの特定の値をクリアするには:
To remove individual values from the cache, we use:
$cache->remove("mycachename");
ソース: http://www.nicksays.co.uk/developers-guide-magento-cache/
参照: http://alanstorm.com/magento_config_a_critique_and_caching
所属していません magento.stackexchange