Ver código fonte

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

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@3831 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 9 anos atrás
pai
commit
6bc1fb6cb7
1 arquivos alterados com 6 adições e 1 exclusões
  1. 6 1
      setup/modulediscovery.class.inc.php

+ 6 - 1
setup/modulediscovery.class.inc.php

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