TYPO3 CMS  TYPO3_7-6
TYPO3\CMS\Core\Package\DependencyResolver Class Reference

Public Member Functions

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

Public Attributes

const SYSEXT_FOLDER = 'typo3/sysext'
 

Protected Member Functions

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

Protected Attributes

 $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.

Definition at line 25 of file DependencyResolver.php.

Member Function Documentation

◆ addDependencyToFrameworkToAllExtensions()

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 131 of file DependencyResolver.php.

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

◆ buildDependencyGraph()

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 159 of file DependencyResolver.php.

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

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

◆ convertConfigurationForGraph()

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 82 of file DependencyResolver.php.

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

◆ injectDependencyOrderingService()

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

Definition at line 40 of file DependencyResolver.php.

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

◆ sortPackageStatesConfigurationByDependency()

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

Definition at line 50 of file DependencyResolver.php.

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

Member Data Documentation

◆ $dependencyOrderingService

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

◆ SYSEXT_FOLDER

const TYPO3\CMS\Core\Package\DependencyResolver::SYSEXT_FOLDER = 'typo3/sysext'

Folder with framework extensions

Definition at line 30 of file DependencyResolver.php.