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