‪TYPO3CMS  ‪main
TYPO3\CMS\Backend\Module\ModuleRegistry Class Reference

Public Member Functions

 __construct (array $modules)
 
 hasModule (string $identifier)
 
 getModule (string $identifier)
 
ModuleInterface[] getModules ()
 
 registerRoutesForModules (Router $router)
 
 getModuleAliases ()
 

Protected Member Functions

ModuleInterface[] applyHierarchy (array $modules)
 
ModuleInterface[] applySorting (array $modules)
 
 populateOrderingsForDependencies (array $moduleIdentifiersToBeAdded, array $modulePositionInformation, array $alreadyOrderedModuleIdentifiers=[])
 
 flattenModules (array $modules, $flatModules=[])
 
 populateAliasMapping ()
 

Private Member Functions

 addModule (ModuleInterface $module)
 

Private Attributes

array $modules = []
 
array $moduleAliases = []
 

Detailed Description

Always use the ModuleProvider API to access modules

Definition at line 27 of file ModuleRegistry.php.

Constructor & Destructor Documentation

◆ __construct()

Member Function Documentation

◆ addModule()

TYPO3\CMS\Backend\Module\ModuleRegistry::addModule ( ModuleInterface  $module)
private

◆ applyHierarchy()

ModuleInterface [] TYPO3\CMS\Backend\Module\ModuleRegistry::applyHierarchy ( array  $modules)
protected

Applies sorting (based on the "position" configuration) to all registered modules and resolves the hierarchy (creating relations by attaching modules to the $parentModule and $subModules properties).

Parameters
ModuleInterface[]$modules
Returns
ModuleInterface[]

Definition at line 135 of file ModuleRegistry.php.

References TYPO3\CMS\Webhooks\Message\$identifier, TYPO3\CMS\Backend\Module\ModuleRegistry\$modules, TYPO3\CMS\Backend\Module\ModuleRegistry\applySorting(), TYPO3\CMS\Backend\Module\ModuleRegistry\flattenModules(), and TYPO3\CMS\Backend\Module\ModuleInterface\getParentIdentifier().

Referenced by TYPO3\CMS\Backend\Module\ModuleRegistry\__construct().

◆ applySorting()

ModuleInterface [] TYPO3\CMS\Backend\Module\ModuleRegistry::applySorting ( array  $modules)
protected

Ensures that modules within one level of hierarchy are ordered properly the way they were given respecting their "top", "bottom", "before" or "after" definition.

Parameters
ModuleInterface[]$modules
Returns
ModuleInterface[]

Definition at line 168 of file ModuleRegistry.php.

References TYPO3\CMS\Webhooks\Message\$identifier, TYPO3\CMS\Backend\Module\ModuleRegistry\$modules, and TYPO3\CMS\Backend\Module\ModuleRegistry\populateOrderingsForDependencies().

Referenced by TYPO3\CMS\Backend\Module\ModuleRegistry\applyHierarchy().

◆ flattenModules()

TYPO3\CMS\Backend\Module\ModuleRegistry::flattenModules ( array  $modules,
  $flatModules = [] 
)
protected

Create a flat modules array (looping through each level by calling "getSubmodules()" on the parent)

Definition at line 292 of file ModuleRegistry.php.

References TYPO3\CMS\Backend\Module\ModuleRegistry\$modules.

Referenced by TYPO3\CMS\Backend\Module\ModuleRegistry\applyHierarchy().

◆ getModule()

TYPO3\CMS\Backend\Module\ModuleRegistry::getModule ( string  $identifier)

◆ getModuleAliases()

TYPO3\CMS\Backend\Module\ModuleRegistry::getModuleAliases ( )

◆ getModules()

ModuleInterface [] TYPO3\CMS\Backend\Module\ModuleRegistry::getModules ( )
Returns
ModuleInterface[]

Definition at line 86 of file ModuleRegistry.php.

References TYPO3\CMS\Backend\Module\ModuleRegistry\$modules.

◆ hasModule()

TYPO3\CMS\Backend\Module\ModuleRegistry::hasModule ( string  $identifier)

◆ populateAliasMapping()

TYPO3\CMS\Backend\Module\ModuleRegistry::populateAliasMapping ( )
protected

◆ populateOrderingsForDependencies()

TYPO3\CMS\Backend\Module\ModuleRegistry::populateOrderingsForDependencies ( array  $moduleIdentifiersToBeAdded,
array  $modulePositionInformation,
array  $alreadyOrderedModuleIdentifiers = [] 
)
protected

Given module identifiers are added based on their module position information to the $alreadyOrderedModuleIdentifiers array (if not already present). In case the modules to be added have dependencies to other modules and those modules exist, corresponding modules are added to $alreadyOrderedModuleIdentifiers on the correct position as well.

Definition at line 237 of file ModuleRegistry.php.

References TYPO3\CMS\Webhooks\Message\$identifier.

Referenced by TYPO3\CMS\Backend\Module\ModuleRegistry\applySorting().

◆ registerRoutesForModules()

TYPO3\CMS\Backend\Module\ModuleRegistry::registerRoutesForModules ( Router  $router)

Needs to be called when the router is set up, AFTER all modules are loaded.

Definition at line 94 of file ModuleRegistry.php.

References TYPO3\CMS\Backend\Routing\Router\addRoute(), and TYPO3\CMS\Backend\Routing\Router\addRouteCollection().

Member Data Documentation

◆ $moduleAliases

array TYPO3\CMS\Backend\Module\ModuleRegistry::$moduleAliases = []
private

◆ $modules