2 declare(strict_types = 1);
54 $parameters = array_intersect_key(
56 array_flip($route->compile()->getPathVariables())
59 $internals = array_diff_key($results, $parameters);
60 $matchedVariableNames = array_keys($parameters);
62 $staticMappers = $route->
filterAspects([StaticMappableAspectInterface::class], $matchedVariableNames);
63 $dynamicCandidates = array_diff_key($parameters, $staticMappers);
72 $page = $route->getOption(
'_page');
73 $pageId = (int)($page[
'l10n_parent'] > 0 ? $page[
'l10n_parent'] : $page[
'uid']);
75 if ($page[
'MPvar'] ??
'') {
76 $routeArguments[
'MP'] = $page[
'MPvar'];
78 $type = $this->
resolveType($route, $remainingQueryParameters);
79 return new PageArguments($pageId, $type, $routeArguments, $staticArguments, $remainingQueryParameters);
88 $defaultPageRoute = $collection->get(
'default');
89 $variant = $this->
getVariant($defaultPageRoute, $this->configuration);
90 $collection->add(
'enhancer_' . spl_object_hash($variant), $variant);
108 $variant = clone $defaultPageRoute;
109 $variant->setPath(rtrim($variant->getPath(),
'/') .
'/' . ltrim($routePath,
'/'));
110 $variant->addOptions([
'_enhancer' => $this,
'_arguments' => $arguments]);
125 $defaultPageRoute = $collection->get(
'default');
126 $variant = $this->
getVariant($defaultPageRoute, $this->configuration);
127 $compiledRoute = $variant->compile();
130 $variables = array_flip($compiledRoute->getPathVariables());
131 $mergedParams = array_replace($variant->getDefaults(), $deflatedParameters);
133 if ($variables === [] || array_diff_key($variables, $mergedParams) !== []) {
136 $variant->addOptions([
'deflatedParameters' => $deflatedParameters]);
137 $collection->add(
'enhancer_' . spl_object_hash($variant), $variant);