2 declare(strict_types = 1);
50 $this->context =
$context ?? GeneralUtility::makeInstance(Context::class);
51 $this->availableAspects =
$GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'routing'][
'aspects'] ?? [];
65 function ($settings) use ($language, $site) {
66 $type = (string)($settings[
'type'] ??
'');
67 $aspect = $this->
create($type, $settings);
68 return $this->
enrich($aspect, $language, $site);
72 uasort($aspects, [$this,
'sortAspects']);
88 throw new \InvalidArgumentException(
89 'Aspect type cannot be empty',
93 if (!isset($this->availableAspects[$type])) {
94 throw new \OutOfRangeException(
95 sprintf(
'No aspect found for %s', $type),
99 unset($settings[
'type']);
100 $className = $this->availableAspects[$type];
102 $aspect = GeneralUtility::makeInstance($className, $settings);
118 $aspect->setSiteLanguage($language);
121 $aspect->setSite($site);
124 $aspect->setContext($this->context);
147 return $first + $second;