Magento:自定义缓存的触发器在哪里?

时间:2013-02-23 11:42:26

标签: magento caching

在此Stackoverflow问题中,答案显示了如何添加自定义缓存状态:Magento Custom Caching with admin switch

现在我的问题是:这是在哪里触发的?

更新 我按照上面提到的步骤进行了操作。现在我在Abstract / Service.php

中有这个代码
final class COMP_NAME_Abstract_Service
{

    static private $_instance;
    private $_licenseHelpers = array();

    public function clearCache( $custom = false )
    {
        //DO SOMETHING
    }

    public function getCache()
    {
        //DO SOMETHING
    }   
}

但是我必须在某个地方'调用'clearCache函数,但是在哪里以及如何?

3 个答案:

答案 0 :(得分:2)

您可以使用活动adminhtml_cache_refresh_type。 添加到全局的事件部分。

<global>
  <events>
    <adminhtml_cache_refresh_type>
    <observers>
        <module_alias>
            <class>COMPNAME_MODULENAME_Model_Observer</class>
            <type>singleton</type>
            <method>cleanCacheType</method>
        </module_alias>
     </observers>
     </adminhtml_cache_refresh_type>
   </events>
</global>

将此代码添加到观察者COMP_NAME_module_name_Model_Observer

public function cleanCacheType(Varien_Event_Observer $observer)
{
   if ($observer->getData('type') == "your_cache_type"){
       //CUSTOM CODE
   }
}

答案 1 :(得分:1)

检查事件 application_clean_cache 当清除缓存时 - Mage::app()->cleanCache(); 或当系统保存产品等时......

并查看活动 - adminhtml_cache_refresh_type 通过管理面板清除缓存时

以及您在观察者中的代码

Mage::app()->getCache()->clean('all', array('my_tag'));

并且需要向Observer添加一些逻辑, 检查是否需要刷新缓存

答案 2 :(得分:0)

您对triggerd的意思是什么?你如何在这个新的缓存中写东西?

Mage::app()->saveCache($data, $cacheKey, $this->getCacheTags(), $this->getCacheLifetime());

并且缓存标记用于删除