protected function runPostInstall($installedModules, $ep, $flags) { $result = true; // post install foreach ($installedModules as $item) { try { list($installer, $component, $action) = $item; if ($action == Resolver::ACTION_INSTALL) { if ($installer && $flags & self::FLAG_INSTALL_MODULE) { $installer->postInstall(); $component->installFinished($ep); } } else { if ($action == Resolver::ACTION_UPGRADE) { if ($flags & self::FLAG_UPGRADE_MODULE) { foreach ($installer as $upgrader) { $upgrader->postInstall(); $component->upgradeFinished($ep, $upgrader); } } } elseif ($action == Resolver::ACTION_REMOVE) { if ($installer && $flags & self::FLAG_REMOVE_MODULE) { $installer->postUninstall(); $component->uninstallFinished($ep); } } } // we always save the configuration, so it invalidates the cache $ep->getConfigIni()->save(); $this->xmlMapFile->save(); // we re-load configuration file for each module because // previous module installer could have modify it. $compiler = new \Jelix\Core\Config\Compiler($ep->getConfigFile(), $ep->scriptName, $ep->isCliScript); $ep->setConfigObj($compiler->read(true)); App::setConfig($ep->getConfigObj()); } catch (Exception $e) { $result = false; $this->error($e->getLocaleKey(), $e->getLocaleParameters()); } catch (\Exception $e) { $result = false; $this->error('install.module.error', array($component->getName(), $e->getMessage())); } } return $result; }