PageTypeDecorator extends AbstractEnhancer implements DecoratingEnhancerInterface
Resolves a static list (like page.typeNum) against a file pattern. Usually added on the very last part of the URL.
It is important that the PageType Enhancer is executed at the very end in your configuration, as it modifies EXISTING route variants.
routeEnhancers: PageTypeSuffix: type: PageType default: '' index: 'index' map: '.html': 1 'menu.json': 13
Table of Contents
Interfaces
- DecoratingEnhancerInterface
- Decorates a route (or routes within a collection) with additional parameters.
Constants
- ROUTE_PATH_DELIMITERS = ['.', '-', '_', '/']
Properties
- $aspects : array<string|int, AspectInterface>
- $configuration : array<string|int, mixed>
- $default : string
- $index : string
- $map : array<string|int, mixed>
- $variableProcessor : VariableProcessor|null
Methods
- __construct() : mixed
- decorateForGeneration() : void
- Decorates route collection during URL URL generation.
- decorateForMatching() : void
- Decorates route collection to be processed during URL resolving.
- getAspects() : array<string|int, AspectInterface>
- getRoutePathRedecorationPattern() : string
- Gets pattern that can be used to redecorate (undecorate) a potential previously decorated route path.
- setAspects() : void
- applyRequirements() : mixed
- applyRouteAspects() : mixed
- buildRegularExpressionPattern() : string
- Builds a regexp out of the map.
- defineValuesByAspect() : array<string|int, mixed>
- Define items having an aspect definition in case they are not defined with a given $targetValue in target $targetValue array.
- filterValuesByPathVariables() : array<string|int, mixed>
- Only keeps values that actually have been used as variables in route path.
- getVariableProcessor() : VariableProcessor
- modifyRoutePath() : string
- Modify the route path to add the variable names with the aspects, e.g.
- needsSlashPrefix() : bool
- Checks if a slash should be prefixed.
- overrideValuesByAspect() : array<string|int, mixed>
- Overrides items having an aspect definition with a given $overrideValue in target $targetValue array.
- quoteForRegularExpressionPattern() : string
- Helper method for regexps.
- resolveType() : string
- Retrieves type from processed route and modifies remaining query parameters.
- resolveValue() : string
- Checks if the value exists inside the map.
Constants
ROUTE_PATH_DELIMITERS
protected
mixed
ROUTE_PATH_DELIMITERS
= ['.', '-', '_', '/']
Properties
$aspects
protected
array<string|int, AspectInterface>
$aspects
= []
$configuration
protected
array<string|int, mixed>
$configuration
$default
protected
string
$default
$index
protected
string
$index
$map
protected
array<string|int, mixed>
$map
$variableProcessor
protected
VariableProcessor|null
$variableProcessor
Methods
__construct()
public
__construct(array<string|int, mixed> $configuration) : mixed
Parameters
- $configuration : array<string|int, mixed>
decorateForGeneration()
Decorates route collection during URL URL generation.
public
decorateForGeneration(RouteCollection $collection, array<string|int, mixed> $parameters) : void
Parameters
- $collection : RouteCollection
- $parameters : array<string|int, mixed>
-
query parameters
decorateForMatching()
Decorates route collection to be processed during URL resolving.
public
decorateForMatching(RouteCollection $collection, string $routePath) : void
Parameters
- $collection : RouteCollection
- $routePath : string
-
URL path
getAspects()
public
getAspects() : array<string|int, AspectInterface>
Return values
array<string|int, AspectInterface>getRoutePathRedecorationPattern()
Gets pattern that can be used to redecorate (undecorate) a potential previously decorated route path.
public
getRoutePathRedecorationPattern() : string
Example:
- route path: 'first/second.html'
- redecoration pattern: '(?:.html|.json)$' -> 'first/second' might be the redecorated route path after applying the redecoration pattern to preg_match/preg_replace
Return values
string —regular expression pattern
setAspects()
public
setAspects(array<string|int, mixed> $aspects) : void
Parameters
- $aspects : array<string|int, mixed>
applyRequirements()
protected
applyRequirements(Route $route, array<string|int, mixed> $requirements[, string|null $namespace = null ]) : mixed
Parameters
- $route : Route
- $requirements : array<string|int, mixed>
- $namespace : string|null = null
applyRouteAspects()
protected
applyRouteAspects(Route $route, array<string|int, AspectInterface> $aspects[, string|null $namespace = null ]) : mixed
Parameters
- $route : Route
- $aspects : array<string|int, AspectInterface>
- $namespace : string|null = null
buildRegularExpressionPattern()
Builds a regexp out of the map.
protected
buildRegularExpressionPattern([bool $useNames = true ]) : string
Parameters
- $useNames : bool = true
Return values
stringdefineValuesByAspect()
Define items having an aspect definition in case they are not defined with a given $targetValue in target $targetValue array.
protected
defineValuesByAspect(Route $route, array<string|int, mixed> $values, string $targetValue) : array<string|int, mixed>
Parameters
- $route : Route
- $values : array<string|int, mixed>
- $targetValue : string
Return values
array<string|int, mixed>filterValuesByPathVariables()
Only keeps values that actually have been used as variables in route path.
protected
filterValuesByPathVariables(Route $route, array<string|int, mixed> $values) : array<string|int, mixed>
- routePath: '/list/{page}' ('page' used as variable in route path)
- values: ['entity' => 'entity...', 'page' => 'page...', 'other' => 'other...']
- result: ['page' => 'page...']
Parameters
- $route : Route
- $values : array<string|int, mixed>
Return values
array<string|int, mixed>getVariableProcessor()
protected
getVariableProcessor() : VariableProcessor
Return values
VariableProcessormodifyRoutePath()
Modify the route path to add the variable names with the aspects, e.g.
protected
modifyRoutePath(string $routePath) : string
-
/{locale_modifier}/{product_title}
->/products/{product_title}
-
/{!locale_modifier}/{product_title}
->/products/{product_title}
Parameters
- $routePath : string
Return values
stringneedsSlashPrefix()
Checks if a slash should be prefixed.
protected
needsSlashPrefix(string $value) : bool
Parameters
- $value : string
Return values
booloverrideValuesByAspect()
Overrides items having an aspect definition with a given $overrideValue in target $targetValue array.
protected
overrideValuesByAspect(Route $route, array<string|int, mixed> $values, string $targetValue) : array<string|int, mixed>
Parameters
- $route : Route
- $values : array<string|int, mixed>
- $targetValue : string
Return values
array<string|int, mixed>quoteForRegularExpressionPattern()
Helper method for regexps.
protected
quoteForRegularExpressionPattern(string $value) : string
Parameters
- $value : string
Return values
stringresolveType()
Retrieves type from processed route and modifies remaining query parameters.
protected
resolveType(Route $route, array<string|int, mixed> &$remainingQueryParameters) : string
Parameters
- $route : Route
- $remainingQueryParameters : array<string|int, mixed>
-
reference to remaining query parameters
Return values
stringresolveValue()
Checks if the value exists inside the map.
protected
resolveValue(string|null $type) : string
Parameters
- $type : string|null