‪TYPO3CMS  9.5
TYPO3\CMS\Core\Package\DependencyResolver Class Reference

Public Member Functions

 injectDependencyOrderingService (DependencyOrderingService $dependencyOrderingService)
 
array sortPackageStatesConfigurationByDependency (array $packageStatesConfiguration)
 

Protected Member Functions

array convertConfigurationForGraph (array $packageStatesConfiguration, array $packageKeys)
 
array addDependencyToFrameworkToAllExtensions (array $packageStateConfiguration, array $rootPackageKeys)
 
array buildDependencyGraph (array $packageStateConfiguration)
 
array findFrameworkPackages (array $packageStateConfiguration)
 

Protected Attributes

DependencyOrderingService $dependencyOrderingService
 

Detailed Description

This class takes care about dependencies between packages. It provides functionality to resolve dependencies and to determine the crucial loading order of the packages.

Deprecated:
‪since TYPO3 v9.2, will be removed in TYPO3 v10.0

Definition at line 26 of file DependencyResolver.php.

Member Function Documentation

◆ addDependencyToFrameworkToAllExtensions()

array TYPO3\CMS\Core\Package\DependencyResolver::addDependencyToFrameworkToAllExtensions ( array  $packageStateConfiguration,
array  $rootPackageKeys 
)
protected

Adds all root packages of current dependency graph as dependency to all extensions

This ensures that the framework extensions (aka sysext) are always loaded first, before any other external extension.

Parameters
array$packageStateConfiguration
array$rootPackageKeys
Returns
‪array

Definition at line 111 of file DependencyResolver.php.

References TYPO3\CMS\Core\Package\DependencyResolver\findFrameworkPackages().

Referenced by TYPO3\CMS\Core\Package\DependencyResolver\buildDependencyGraph().

◆ buildDependencyGraph()

array TYPO3\CMS\Core\Package\DependencyResolver::buildDependencyGraph ( array  $packageStateConfiguration)
protected

Builds the dependency graph for all packages

This method also introduces dependencies among the dependencies to ensure the loading order is exactly as specified in the list.

Parameters
array$packageStateConfiguration
Returns
‪array

Definition at line 140 of file DependencyResolver.php.

References TYPO3\CMS\Core\Package\DependencyResolver\addDependencyToFrameworkToAllExtensions(), TYPO3\CMS\Core\Package\DependencyResolver\convertConfigurationForGraph(), and TYPO3\CMS\Core\Package\DependencyResolver\findFrameworkPackages().

Referenced by TYPO3\CMS\Core\Package\DependencyResolver\sortPackageStatesConfigurationByDependency().

◆ convertConfigurationForGraph()

array TYPO3\CMS\Core\Package\DependencyResolver::convertConfigurationForGraph ( array  $packageStatesConfiguration,
array  $packageKeys 
)
protected

Convert the package configuration into a dependency definition

This converts "dependencies" and "suggestions" to "after" syntax for the usage in DependencyOrderingService

Parameters
array$packageStatesConfiguration
array$packageKeys
Returns
‪array
Exceptions

Definition at line 61 of file DependencyResolver.php.

Referenced by TYPO3\CMS\Core\Package\DependencyResolver\buildDependencyGraph().

◆ findFrameworkPackages()

array TYPO3\CMS\Core\Package\DependencyResolver::findFrameworkPackages ( array  $packageStateConfiguration)
protected

◆ injectDependencyOrderingService()

TYPO3\CMS\Core\Package\DependencyResolver::injectDependencyOrderingService ( DependencyOrderingService  $dependencyOrderingService)
Parameters
DependencyOrderingService$dependencyOrderingService

Definition at line 35 of file DependencyResolver.php.

References TYPO3\CMS\Core\Package\DependencyResolver\$dependencyOrderingService.

◆ sortPackageStatesConfigurationByDependency()

array TYPO3\CMS\Core\Package\DependencyResolver::sortPackageStatesConfigurationByDependency ( array  $packageStatesConfiguration)
Parameters
array$packageStatesConfiguration
Returns
‪array Returns the packageStatesConfiguration sorted by dependencies
Exceptions

Definition at line 45 of file DependencyResolver.php.

References TYPO3\CMS\Core\Package\DependencyResolver\buildDependencyGraph().

Member Data Documentation

◆ $dependencyOrderingService

DependencyOrderingService TYPO3\CMS\Core\Package\DependencyResolver::$dependencyOrderingService
protected