From 7511391aed0b72d878305a25a95dae1be0ab9160 Mon Sep 17 00:00:00 2001 From: Denis Flaven Date: Wed, 25 Nov 2015 16:55:58 +0000 Subject: [PATCH] Added structured error reporting in case of missing dependencies for the modules to install. SVN:trunk[3831] --- setup/modulediscovery.class.inc.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/setup/modulediscovery.class.inc.php b/setup/modulediscovery.class.inc.php index 4181021ab..897a4c607 100644 --- a/setup/modulediscovery.class.inc.php +++ b/setup/modulediscovery.class.inc.php @@ -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();