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

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

protected resolveDependencies ( Resolver $resolver, $epId )
$resolver Jelix\Dependencies\Resolver
    protected function resolveDependencies(Resolver $resolver, $epId)
    {
        try {
            $moduleschain = $resolver->getDependenciesChainForInstallation();
        } catch (ItemException $e) {
            $item = $e->getItem();
            $component = $item->getProperty('component');
            if ($e->getCode() == 1 || $e->getCode() == 4) {
                $component->inError = self::INSTALL_ERROR_CIRCULAR_DEPENDENCY;
                $this->error('module.circular.dependency', $component->getName());
            } else {
                if ($e->getCode() == 2) {
                    $depName = $e->getRelatedData()->getName();
                    $maxVersion = $minVersion = 0;
                    foreach ($component->dependencies as $compInfo) {
                        if ($compInfo['type'] == 'module' && $compInfo['name'] == $depName) {
                            $maxVersion = $depInfo['maxversion'];
                            $minVersion = $depInfo['minversion'];
                        }
                    }
                    $this->error('module.bad.dependency.version', array($component->getName(), $depName, $minVersion, $maxVersion));
                } else {
                    if ($e->getCode() == 3) {
                        $depName = $e->getRelatedData()->getName();
                        $this->error('install.error.delete.dependency', array($depName, $component->getName()));
                    } else {
                        if ($e->getCode() == 6) {
                            $component->inError = self::INSTALL_ERROR_MISSING_DEPENDENCIES;
                            $this->error('module.needed', array($component->getName(), implode(',', $e->getRelatedData())));
                        } else {
                            if ($e->getCode() == 5) {
                                $depName = $e->getRelatedData()->getName();
                                $this->error('install.error.install.dependency', array($depName, $component->getName()));
                            }
                        }
                    }
                }
            }
            $this->ok('install.entrypoint.bad.end', $epId);
            return false;
        } catch (\Exception $e) {
            $this->error('install.bad.dependencies');
            $this->ok('install.entrypoint.bad.end', $epId);
            return false;
        }
        $this->ok('install.dependencies.ok');
        return $moduleschain;
    }