/** * 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; } } }
/** * Init application * * @return void */ public function initApplication() { // init php settings $this->initPhpSettings(); // init a strict sql mode $this->initSqlStrictMode(); // set the service manager ServiceLocatorService::setServiceLocator($this->serviceLocator); $request = $this->serviceLocator->get('Request'); if (!$request instanceof ConsoleRequest) { // init session $this->initSession(); } $eventManager = LocalizationEvent::getEventManager(); $eventManager->attach(LocalizationEvent::UNINSTALL, function () { ApplicationCacheUtility::clearSettingCache(); }); }