2013-02-23 2 views
2

В этом ответе на Stackoverflow ответ показывает, как добавить пользовательский статус кеша: Magento Custom Caching with admin switchMagento: где находится триггер пользовательского кеша?

Теперь мой вопрос: где это срабатывает?

ОБНОВЛЕНИЕ: Я выполнил шаги, указанные выше. Теперь у меня есть этот код в абстрактном/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 где-то, но где и как?

+0

Вот хороший учебник я нашел кэширование. Вы можете использовать собственный файл 'XML' для использования в вашем кеше. Этот метод позволяет другим модулям расширять ваш XML-файл с помощью встроенного в Magento * файла конфигурации XML-файлов. Возможно, это слишком сложно для того, чего вы пытаетесь достичь, но это, безусловно, может дать вам хорошую идею. Посмотрите внимательно на файл 'Config.php'. Его конструктор показывает, как XML-файл анализируется и кэшируется. [Пользовательские файлы конфигурации в Magento] (http://www.ecomdev.org/2010/08/02/custom-configuration-files-in-magento.html) – alexbchr

+0

Привет, добро пожаловать в переполнение стека! Ссылка на потенциальное решение всегда приветствуется, но добавьте контекст вокруг ссылки, чтобы у других пользователей было некоторое представление о том, что это такое и почему оно есть. Всегда указывайте наиболее важную часть важной ссылки. Подумайте, что произойдет, если эта страница будет перенесена на другой сервер или изменения прямой ссылки - будущие пользователи не смогут воспользоваться ответом. Пожалуйста, взгляните на [как ответить] (http://stackoverflow.com/questions/how-to-answer). – Jesse

ответ

0

Что вы подразумеваете под действием triggerd? Как вы пишете вещи в этот новый кеш?

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

и теги кэша используются для удаления

+0

Я имею в виду, когда я проверяю параметры кеша (например: CONFIG, LAYOUT_GENERAL_CACHE_TAG) и т. Д. У меня теперь также есть новый (MYCACHE), но где я могу установить, что он на самом деле должен делать? Думаю, мне нужно расширить его в Наблюдателе ...? Но что я должен продлить. –

+0

Я обновил вопрос ... (спасибо) –

+0

Вы пишете вещи в кеше с помощью saveCache(), вы загружаете вещи из кэша через loadCache(), и если кеш недействителен, вы вызываете cleanCache ($ tag) или removeCache ($ id) –

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

проверка событий application_clean_cache когда очистить кэш, как - Mage::app()->cleanCache(); или когда система сохраняет продукт и т.д. ...

и принять посмотреть событие - adminhtml_cache_refresh_type , когда очистка кэша с помощью панели администратора

и кода в наблюдателе

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

и нужно добавить логику наблюдателя, для проверки необходимости обновления кэша или не

Смежные вопросы