diff --git a/setup/modulediscovery/ModuleFileReader.php b/setup/modulediscovery/ModuleFileReader.php index 118f2249a..00cb7158e 100644 --- a/setup/modulediscovery/ModuleFileReader.php +++ b/setup/modulediscovery/ModuleFileReader.php @@ -175,15 +175,21 @@ class ModuleFileReader } $sModuleInstallerClass = $aModuleInfo['installer']; + if (strlen($sModuleInstallerClass) === 0) { + return null; + } + if (!class_exists($sModuleInstallerClass)) { $sModuleFilePath = $aModuleInfo['module_file_path']; $this->ReadModuleFileInformationUnsafe($sModuleFilePath); } if (!class_exists($sModuleInstallerClass)) { + \IssueLog::Error(__METHOD__, null, $aModuleInfo); throw new CoreException("Wrong installer class: '$sModuleInstallerClass' is not a PHP class - Module: ".$aModuleInfo['label']); } if (!is_subclass_of($sModuleInstallerClass, 'ModuleInstallerAPI')) { + \IssueLog::Error(__METHOD__, null, $aModuleInfo); throw new CoreException("Wrong installer class: '$sModuleInstallerClass' is not derived from 'ModuleInstallerAPI' - Module: ".$aModuleInfo['label']); } diff --git a/setup/runtimeenv.class.inc.php b/setup/runtimeenv.class.inc.php index 3b857dbd1..d57aaeebc 100644 --- a/setup/runtimeenv.class.inc.php +++ b/setup/runtimeenv.class.inc.php @@ -915,7 +915,7 @@ class RunTimeEnvironment * @param bool $bSampleData Wether or not to load sample data * @param null|string[] $aSelectedModules List of selected modules */ - public function LoadData($aAvailableModules, $bSampleData, $aSelectedModules=null) + public function LoadData($aAvailableModules, $bSampleData, $aSelectedModules = null) { $oDataLoader = new XMLDataLoader();