48 trigger_error(self::class .
' will be removed in TYPO3 v10.0.', E_USER_DEPRECATED);
49 return $this->dependencyOrderingService->calculateOrder($this->
buildDependencyGraph($packageStatesConfiguration));
65 foreach ($packageKeys as $packageKey) {
66 if (!isset($packageStatesConfiguration[$packageKey][
'dependencies']) && !isset($packageStatesConfiguration[$packageKey][
'suggestions'])) {
69 $dependencies[$packageKey] = [
72 if (isset($packageStatesConfiguration[$packageKey][
'dependencies'])) {
73 foreach ($packageStatesConfiguration[$packageKey][
'dependencies'] as $dependentPackageKey) {
74 if (!in_array($dependentPackageKey, $packageKeys,
true)) {
75 throw new \UnexpectedValueException(
76 'The package "' . $packageKey .
'" depends on "'
77 . $dependentPackageKey .
'" which is not present in the system.',
81 $dependencies[$packageKey][
'after'][] = $dependentPackageKey;
84 if (isset($packageStatesConfiguration[$packageKey][
'suggestions'])) {
85 foreach ($packageStatesConfiguration[$packageKey][
'suggestions'] as $suggestedPackageKey) {
87 if (in_array($suggestedPackageKey, $packageKeys,
true)) {
94 $dependencies[$packageKey][
'after-resilient'][] = $suggestedPackageKey;
115 $extensionPackageKeys = array_diff(array_keys($packageStateConfiguration), $frameworkPackageKeys);
116 foreach ($extensionPackageKeys as $packageKey) {
118 $packageKeysWithoutFramework = array_diff(
119 $packageStateConfiguration[$packageKey][
'dependencies'],
120 $frameworkPackageKeys
124 $packageStateConfiguration[$packageKey][
'dependencies'] = array_merge(
126 $packageKeysWithoutFramework
129 return $packageStateConfiguration;
144 $frameworkPackagesDependencyGraph = $this->dependencyOrderingService->buildDependencyGraph($this->
convertConfigurationForGraph($packageStateConfiguration, $frameworkPackageKeys));
147 $packageKeys = array_keys($packageStateConfiguration);
148 return $this->dependencyOrderingService->buildDependencyGraph($this->
convertConfigurationForGraph($packageStateConfiguration, $packageKeys));
157 $frameworkPackageKeys = [];
158 $packageManager = GeneralUtility::makeInstance(PackageManager::class);
159 foreach ($packageStateConfiguration as $packageKey => $packageConfiguration) {
161 $package = $packageManager->getPackage($packageKey);
162 if ($package->getValueFromComposerManifest(
'type') ===
'typo3-cms-framework') {
163 $frameworkPackageKeys[] = $packageKey;
167 return $frameworkPackageKeys;