IdentityRoutePart
class IdentityRoutePart extends DynamicRoutePart (View source)
Identity Route Part This route part can be used to create and resolve ObjectPathMappings.
This handler is used by default, if an objectType is specified for a route part in the routing configuration:
name: 'Some route for xyz entities' uriPattern: '{xyz}' routeParts: 'xyz': objectType: 'Some\Package\Domain\Model\Xyz'
Properties
protected string | $name | Name of the Route Part |
from AbstractRoutePart |
protected mixed | $value | Value of the Route Part after decoding. |
from AbstractRoutePart |
protected mixed | $defaultValue | Default value of the Route Part. |
from AbstractRoutePart |
protected bool | $isOptional | Specifies whether this Route Part is optional. Which means it's put in parentheses in the routes URI pattern. |
from AbstractRoutePart |
protected bool | $lowerCase | Specifies whether this Route Part should be converted to lower case when resolved. |
from AbstractRoutePart |
protected array | $options | Contains options for this Route Part. |
from AbstractRoutePart |
protected PersistenceManagerInterface | $persistenceManager | ||
protected string | $splitString | The split string represents the end of a Dynamic Route Part. |
from DynamicRoutePart |
protected RouteParameters | $parameters | The Routing RouteParameters passed to matchWithParameters() These allow sub classes to adjust the matching behavior accordingly |
from DynamicRoutePart |
protected ReflectionService | $reflectionService | ||
protected ObjectPathMappingRepository | $objectPathMappingRepository | ||
protected string | $objectType | The object type (class name) of the entity this route part belongs to |
|
protected string | $uriPattern | pattern for the URI representation (for example "{date:Y}/{date:m}/{date.d}/{title}") |
Methods
Returns true if a value is set for this Route Part, otherwise false.
Returns value of the Route Part. Before match() is called this returns NULL.
Returns true if a default value is set for this Route Part, otherwise false.
Sets default value of the Route Part.
Specifies whether this Route part is optional.
Specifies whether this Route part should be converted to lower case when resolved.
Checks whether this Dynamic Route Part corresponds to the given $routePath.
Checks whether this Dynamic Route Part corresponds to the given $routePath.
Returns the first part of $routePath that should be evaluated in matchValue().
Checks, whether given value can be matched.
Removes matching part from $routePath.
Checks whether $routeValues contains elements which correspond to this Dynamic Route Part.
Checks whether $routeValues contains elements which correspond to this Dynamic Route Part.
Returns the route value of the current route part.
Resolves the given entity and sets the value to a URI representation (path segment) that matches $this->uriPattern and is unique for the given object.
No description
No description
No description
If $this->uriPattern is specified, this will be returned, otherwise identity properties of $this->objectType are returned in the format {property1}/{property2}/{property3}.
Retrieves the object identifier from the given $pathSegment.
Generates a unique string for the given identifier according to $this->uriPattern.
Creates a URI representation (path segment) for the given object matching $this->uriPattern.
Creates a new ObjectPathMapping and stores it in the repository
Transforms the given string into a URI compatible format without special characters.
Details
void
setName(string $partName)
Sets name of the Route Part.
string
getName()
Returns name of the Route Part.
bool
hasValue()
Returns true if a value is set for this Route Part, otherwise false.
mixed
getValue()
Returns value of the Route Part. Before match() is called this returns NULL.
bool
hasDefaultValue()
Returns true if a default value is set for this Route Part, otherwise false.
void
setDefaultValue(mixed $defaultValue)
Sets default value of the Route Part.
mixed
getDefaultValue()
Gets default value of the Route Part.
void
setOptional(bool $isOptional)
Specifies whether this Route part is optional.
bool
isOptional()
Getter for $this->isOptional.
void
setLowerCase(bool $lowerCase)
Specifies whether this Route part should be converted to lower case when resolved.
bool
isLowerCase()
Getter for $this->lowerCase.
void
setOptions(array $options)
Defines options for this Route Part.
Options can be used to enrich a route part with parameters or settings like case sensivity.
array
getOptions()
No description
void
setSplitString(string $splitString)
Sets split string of the Route Part.
final bool|MatchResult
match(string $routePath)
Checks whether this Dynamic Route Part corresponds to the given $routePath.
final bool
matchWithParameters(string $routePath, RouteParameters $parameters)
Checks whether this Dynamic Route Part corresponds to the given $routePath.
On successful match this method sets $this->value to the corresponding uriPart and shortens $routePath respectively.
protected string
findValueToMatch(string $routePath)
Returns the first part of $routePath that should be evaluated in matchValue().
If no split string is set (route part is the last in the routes uriPattern), the complete $routePart is returned. Otherwise the part is returned that matches the specified uriPattern of this route part.
protected bool|MatchResult
matchValue(string $value)
Checks, whether given value can be matched.
If the value is empty, false is returned. Otherwise the ObjectPathMappingRepository is asked for a matching ObjectPathMapping. If that is found the identifier is stored in $this->value, otherwise this route part does not match.
protected void
removeMatchingPortionFromRequestPath(string $routePath, string $valueToMatch)
Removes matching part from $routePath.
This method can be overridden by custom RoutePartHandlers to implement custom matching mechanisms.
final bool|ResolveResult
resolve(array $routeValues)
Checks whether $routeValues contains elements which correspond to this Dynamic Route Part.
If a corresponding element is found in $routeValues, this element is removed from the array.
final bool|ResolveResult
resolveWithParameters(array $routeValues, RouteParameters $parameters)
Checks whether $routeValues contains elements which correspond to this Dynamic Route Part.
If a corresponding element is found in $routeValues, this element is removed from the array.
protected string|array
findValueToResolve(array $routeValues)
Returns the route value of the current route part.
This method can be overridden by custom RoutePartHandlers to implement custom resolving mechanisms.
protected bool|ResolveResult
resolveValue(mixed $value)
Resolves the given entity and sets the value to a URI representation (path segment) that matches $this->uriPattern and is unique for the given object.
void
setObjectType(string $objectType)
No description
string
getObjectType()
No description
void
setUriPattern(string $uriPattern)
No description
string
getUriPattern()
If $this->uriPattern is specified, this will be returned, otherwise identity properties of $this->objectType are returned in the format {property1}/{property2}/{property3}.
If $this->objectType does not contain identity properties, an empty string is returned.
protected string|int
getObjectIdentifierFromPathSegment(string $pathSegment)
Retrieves the object identifier from the given $pathSegment.
If no UriPattern is set, the $pathSegment is expected to be the (URL-encoded) identifier otherwise a matching ObjectPathMapping fetched from persistence If no matching ObjectPathMapping was found or the given $pathSegment is no valid identifier NULL is returned.
protected string|int
getPathSegmentByIdentifier(string $identifier)
Generates a unique string for the given identifier according to $this->uriPattern.
If no UriPattern is set, the path segment is equal to the (URL-encoded) $identifier - otherwise a matching ObjectPathMapping is fetched from persistence. If no ObjectPathMapping exists for the given identifier, a new ObjectPathMapping is created.
protected string
createPathSegmentForObject(mixed $object)
Creates a URI representation (path segment) for the given object matching $this->uriPattern.
protected void
storeObjectPathMapping(string $pathSegment, string|int $identifier)
Creates a new ObjectPathMapping and stores it in the repository
protected string
rewriteForUri(string $value)
Transforms the given string into a URI compatible format without special characters.
In the long term this should be done with proper transliteration