Какие события вызываются при очистке кэша modx ?
События, касающиеся кэша:
OnBeforeCacheUpdate
OnBeforeSaveWebPageCache
OnCacheUpdate
OnSiteRefresh
OnLoadWebPageCache
При ручном обновлении сайта («Сайт» — «Обновить сайт») вызываются следующие кэш-зависимые события:
OnBeforeCacheUpdate
OnSiteRefresh
При загрузке страницы:
OnBeforeSaveWebPageCache
OnCacheUpdate
При программном вызове метода modxCacheManager->clearCache() никакие кэш-зависимые события не вызываются.
При сохранении элемента (при установленной галке «Очистить кэш при сохранении») тоже никакие кэш-зависимые события не вызываются.
Тогда как отследить момент «после очистки кэша»?
OnBeforeCacheUpdate
OnBeforeSaveWebPageCache
OnCacheUpdate
OnSiteRefresh
OnLoadWebPageCache
При ручном обновлении сайта («Сайт» — «Обновить сайт») вызываются следующие кэш-зависимые события:
OnBeforeCacheUpdate
OnSiteRefresh
При загрузке страницы:
OnBeforeSaveWebPageCache
OnCacheUpdate
При программном вызове метода modxCacheManager->clearCache() никакие кэш-зависимые события не вызываются.
При сохранении элемента (при установленной галке «Очистить кэш при сохранении») тоже никакие кэш-зависимые события не вызываются.
Тогда как отследить момент «после очистки кэша»?
Комментарии: 2
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Другой вопрос в том, что он вроде как deprecated, а в рекомендуемом refresh() такого события нет.
В любом случае, нет пересекающихся событий, генерируемых и при ручном обновлении сайта, и при вызове modCacheManager::clearCache(). Плюс событие OnCacheUpdate — deprecated.
К тому же при очистке кэша в момент сохранения элемента (при установленной галке «Очистить кэш при сохранении») не генерируется никаких событий, связанных с кэшем.
Т.е. единственный вариант решения сабжевой задачи — частное решение. Т.е. вызываем «обработчик» события «после очистки кэша»:
а) в обработчике OnSiteRefresh
б) везде в коде после вызова modCacheManager::clearCache()
в) во всех обработчиках «после сохранения элемента», если установлена галка «Очистить кэш при сохранении»