2

この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 関数を「呼び出す」必要がありますが、どこでどのように?

4

3 に答える 3

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
   }
}
于 2014-10-31T09:40:40.837 に答える
1

キャッシュをクリアするとき、またはシステムが製品を保存するときなどに、イベントapplication_clean_cacheMage::app()->cleanCache();を確認してください ...

イベントを見てください- 管理パネルからキャッシュをクリアするときのadminhtml_cache_refresh_type

そしてオブザーバーのあなたのコード

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

キャッシュを更新する必要があるかどうかを確認するために、オブザーバーにいくつかのロジックを追加する必要があります

于 2015-05-07T13:09:48.587 に答える
0

What do you mean by triggerd? How you write things into this new cache?

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

and the cache tags are used for deletion

于 2013-02-23T14:05:24.790 に答える