2 declare(strict_types = 1);
43 if (empty($modules)) {
46 foreach ($modules as $identifier => $configuration) {
47 if (empty($configuration) || !is_array($configuration)) {
49 'Missing configuration for module "' . $identifier .
'".',
53 if (!is_string($configuration[
'module']) ||
54 empty($configuration[
'module']) ||
55 !class_exists($configuration[
'module']) ||
57 $configuration[
'module'],
58 ModuleInterface::class,
65 '" defines an invalid module class. Ensure the class exists and implements the "' .
66 ModuleInterface::class .
73 $orderedModules = GeneralUtility::makeInstance(DependencyOrderingService::class)->orderByDependencies(
77 $moduleInstances = [];
78 foreach ($orderedModules as $moduleConfiguration) {
79 $module = GeneralUtility::makeInstance($moduleConfiguration[
'module']);
87 $moduleInstances[$module->getIdentifier()] = $module;
91 $module->setSubModules($subModuleInstances);
94 return $moduleInstances;