public function execute()
 {
     $this->get_update_token();
     AppContext::get_cache_service()->clear_cache();
     Environment::try_to_increase_max_execution_time();
     // Mise en maintenance du site s'il ne l'est pas déjà
     $this->put_site_under_maintenance();
     // Suppression des fichiers qui ne sont plus présent dans la nouvelle version pour éviter les conflits
     $this->delete_old_files();
     // Suppression du captcha PHPBoostCaptcha
     $this->delete_phpboostcaptcha();
     // Désinstallation des anciens menus (dans /menus)
     $this->delete_old_menus();
     // Mise à jour des tables du noyau
     $this->update_kernel_tables();
     // Mise à jour de la version du noyau
     $this->update_kernel_version();
     // Mise à jour des modules
     $this->update_modules();
     // Mise à jour des thèmes
     $this->update_themes();
     // Mise à jour des langues
     $this->update_langs();
     // installation du module UrlUpdater pour la réécriture des Url des modules mis à jour
     ModulesManager::install_module('UrlUpdater');
     // Fin de la mise à jour : régénération du cache
     $this->delete_update_token();
     $this->generate_cache();
     HtaccessFileCache::regenerate();
 }
 private function install_modules(array $modules_to_install)
 {
     foreach ($modules_to_install as $module_name) {
         ModulesManager::install_module($module_name, true, false);
     }
     if (ServerEnvironmentConfig::load()->is_url_rewriting_enabled()) {
         HtaccessFileCache::regenerate();
     }
 }
 private function install_module($module_id, $activate)
 {
     switch (ModulesManager::install_module($module_id, $activate)) {
         case ModulesManager::CONFIG_CONFLICT:
             $this->view->put('MSG', MessageHelper::display($this->lang['modules.config_conflict'], MessageHelper::WARNING, 10));
             break;
         case ModulesManager::UNEXISTING_MODULE:
             $this->view->put('MSG', MessageHelper::display(LangLoader::get_message('element.unexist', 'status-messages-common'), MessageHelper::WARNING, 10));
             break;
         case ModulesManager::MODULE_ALREADY_INSTALLED:
             $this->view->put('MSG', MessageHelper::display($this->lang['modules.already_installed'], MessageHelper::WARNING, 10));
             break;
         case ModulesManager::PHP_VERSION_CONFLICT:
             $this->view->put('MSG', MessageHelper::display(LangLoader::get_message('misfit.php', 'status-messages-common'), MessageHelper::WARNING, 10));
             break;
         case ModulesManager::PHPBOOST_VERSION_CONFLICT:
             $this->view->put('MSG', MessageHelper::display(LangLoader::get_message('misfit.phpboost', 'status-messages-common'), MessageHelper::WARNING, 10));
             break;
         case ModulesManager::MODULE_INSTALLED:
         default:
             $this->view->put('MSG', MessageHelper::display(LangLoader::get_message('process.success', 'status-messages-common'), MessageHelper::SUCCESS, 10));
     }
 }