Jelix\Installer\Installer::runPreInstall PHP Method

runPreInstall() protected method

protected runPreInstall ( $moduleschain, $ep, $installWholeApp, $flags )
    protected function runPreInstall($moduleschain, $ep, $installWholeApp, $flags)
    {
        $result = true;
        // ----------- pre install
        // put also available installers into $componentsToInstall for
        // the next step
        $componentsToInstall = array();
        foreach ($moduleschain as $resolverItem) {
            $component = $resolverItem->getProperty('component');
            try {
                if ($resolverItem->getAction() == Resolver::ACTION_INSTALL) {
                    if ($ep->getConfigObj()->disableInstallers) {
                        $installer = null;
                    } else {
                        $installer = $component->getInstaller($ep, $installWholeApp);
                    }
                    $componentsToInstall[] = array($installer, $component, Resolver::ACTION_INSTALL);
                    if ($flags & self::FLAG_INSTALL_MODULE && $installer) {
                        $installer->preInstall();
                    }
                } elseif ($resolverItem->getAction() == Resolver::ACTION_UPGRADE) {
                    if ($ep->getConfigObj()->disableInstallers) {
                        $upgraders = array();
                    } else {
                        $upgraders = $component->getUpgraders($ep);
                    }
                    if ($flags & self::FLAG_UPGRADE_MODULE && count($upgraders)) {
                        foreach ($upgraders as $upgrader) {
                            $upgrader->preInstall();
                        }
                    }
                    $componentsToInstall[] = array($upgraders, $component, Resolver::ACTION_UPGRADE);
                } else {
                    if ($resolverItem->getAction() == Resolver::ACTION_REMOVE) {
                        if ($ep->getConfigObj()->disableInstallers) {
                            $installer = null;
                        } else {
                            $installer = $component->getInstaller($ep, $installWholeApp);
                        }
                        $componentsToInstall[] = array($installer, $component, Resolver::ACTION_REMOVE);
                        if ($flags & self::FLAG_REMOVE_MODULE && $installer) {
                            $installer->preUninstall();
                        }
                    }
                }
            } 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()));
            }
        }
        if (!$result) {
            return false;
        }
        return $componentsToInstall;
    }