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; }