/** * Init application * * @param \Zend\ModuleManager\ModuleEvent $e */ public function initApplication(ModuleEvent $e) { // init user identity $this->initUserIdentity(); // init time zone $this->initTimeZone(); // clear users caches $eventManager = LayoutEvent::getEventManager(); $eventManager->attach(LayoutEvent::UNINSTALL, function ($e) { UserCacheUtility::clearUserCache(); }); $eventManager = LocalizationEvent::getEventManager(); $eventManager->attach(LocalizationEvent::UNINSTALL, function ($e) { UserCacheUtility::clearUserCache(); }); }
/** * Clear caches * * @param array $caches * boolean setting optional * boolean time_zone optional * boolean admin_menu optional * boolean js_cache optional * boolean css_cache optional * boolean layout optional * boolean localization optional * boolean page optional * boolean user optional * boolean xmlrpc optional * @return void */ protected function clearCaches(array $caches = []) { // clear the modules and system config caches ApplicationCacheUtility::clearModuleCache(); ApplicationCacheUtility::clearConfigCache(); ApplicationCacheUtility::clearDynamicCache(); foreach ($caches as $cacheName => $clear) { if (false === (bool) $clear) { continue; } switch ($cacheName) { case 'setting': ApplicationCacheUtility::clearSettingCache(); break; case 'time_zone': ApplicationCacheUtility::clearTimeZoneCache(); break; case 'admin_menu': ApplicationCacheUtility::clearAdminMenuCache(); break; case 'js_cache': ApplicationCacheUtility::clearJsCache(); break; case 'css_cache': ApplicationCacheUtility::clearCssCache(); break; case 'layout': LayoutCacheUtility::clearLayoutCache(); break; case 'localization': LocalizationCacheUtility::clearLocalizationCache(); break; case 'page': PageCacheUtility::clearPageCache(); break; case 'user': UserCacheUtility::clearUserCache(); break; case 'xmlrpc': XmlRpcCacheUtility::clearXmlRpcCache(); break; } } }