Jelix\Installer\Installer::_singleModules PHP Метод

_singleModules() защищенный Метод

protected _singleModules ( $action, $modulesList, $entrypoint )
    protected function _singleModules($action, $modulesList, $entrypoint)
    {
        $this->startMessage();
        if ($entrypoint == null) {
            $entryPointList = $this->entryPoints;
        } else {
            if (isset($this->epId[$entrypoint])) {
                $entryPointList = array($this->entryPoints[$this->epId[$entrypoint]]);
            } else {
                throw new \Exception("unknown entry point");
            }
        }
        foreach ($entryPointList as $epId => $ep) {
            if ($ep->sameConfigAs) {
                continue;
            }
            $allModules =& $ep->getLaunchers();
            $modules = array();
            // check that all given modules are existing
            $hasError = false;
            foreach ($modulesList as $name) {
                if (!isset($allModules[$name])) {
                    $this->error('module.unknown', $name);
                    $hasError = true;
                }
            }
            if ($hasError) {
                continue;
            }
            // get all modules
            $resolver = new Resolver();
            foreach ($ep->getLaunchers() as $name => $module) {
                $resolverItem = $module->getResolverItem($epId);
                if (in_array($name, $modulesList)) {
                    $resolverItem->setAction($action);
                }
                $resolver->addItem($resolverItem);
            }
            // install modules
            $result = $result & $this->_installModules($resolver, $ep, false);
            if (!$result) {
                break;
            }
            $this->installerIni->save();
        }
        $this->completeInstallStatus();
        $this->installerIni->save();
        $this->endMessage();
        return $result;
    }