Added structured error reporting in case of missing dependencies for the modules to install.

SVN:trunk[3831]
This commit is contained in:
Denis Flaven
2015-11-25 16:55:58 +00:00
parent d0a50adf32
commit 7511391aed

View File

@@ -25,6 +25,7 @@
class MissingDependencyException extends Exception
{
public $aModulesInfo;
}
class ModuleDiscovery
@@ -165,14 +166,18 @@ class ModuleDiscovery
}
if ($bAbortOnMissingDependency && count($aDependencies) > 0)
{
$aModulesInfo = array();
$aModuleDeps = array();
foreach($aDependencies as $sId => $aDeps)
{
$aModule = $aModules[$sId];
$aModuleDeps[] = "{$aModule['label']} (id: $sId) depends on ".implode(' + ', $aDeps);
$aModulesInfo[$sId] = array('module' => $aModule, 'dependencies' => $aDeps);
}
$sMessage = "The following modules have unmet dependencies: ".implode(', ', $aModuleDeps);
throw new MissingDependencyException($sMessage);
$oException = new MissingDependencyException($sMessage);
$oException->aModulesInfo = $aModulesInfo;
throw $oException;
}
// Return the ordered list, so that the dependencies are met...
$aResult = array();