Кэшируйте значение, основанное на настройках конфигурации и налогов


Я вычисляю значение, основанное на параметрах конфигурации и налоговых ставках.

Как я могу кэшировать его таким образом, чтобы он автоматически очищался при изменении одной из этих сведений?

Все дело в том, чтобы использовать правильные теги, а затем они будут автоматически очищены?

Author: nukala satish, 2013-02-06

2 answers

Для части конфигурации вы можете добавить тег кэша конфигурации при сохранении элемента:

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');
    }   
}
 2
Author: Kristof at Fooman, 2013-02-07 18:06:50

Это стратегия сохранения элемента в кэше и истечения его срока действия через некоторое время (в данном примере 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

 0
Author: philwinkle, 2013-02-06 16:25:52