Class EntityRoute
Matches entities to routes
This route will match by entity and map its fields to the URL pattern by comparing the field names with the template vars. This makes it easy and convenient to change routes globally.
Constants
-
arrayVALID_METHODS ¶['GET', 'PUT', 'POST', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD']Valid HTTP methods.
Property Summary
-
$_compiledRoute protected
string|nullThe compiled route regular expression
-
$_extensions protected
string[]List of connected extensions for this route.
-
$_greedy protected
boolIs this route a greedy route? Greedy routes have a
/*in their template -
$_name protected
string|nullThe name for a route. Fetch with Route::getName();
-
$braceKeys protected
boolTrack whether or not brace keys
{var}were used. -
$defaults public
arrayDefault parameters for a Route
-
$keys public
arrayAn array of named segments in a Route.
/:controller/:action/:idhas 3 key elements -
$middleware protected
arrayList of middleware that should be applied.
-
$options public
arrayAn array of additional parameters for the Route.
-
$template public
string|nullThe routes template string.
Method Summary
-
__construct() public
Constructor for a Route
-
__set_state() public static
Set state magic method to support var_export
-
_checkEntity() protected
Checks that we really deal with an entity object
-
_matchMethod() protected
Check whether or not the URL's HTTP method matches.
-
_parseArgs() protected
Parse passed parameters into a list of passed args.
-
_parseExtension() protected
Removes the extension from $url if it contains a registered extension. If no registered extension is found, no extension is returned and the URL is returned unmodified.
-
_persistParams() protected
Apply persistent parameters to a URL array. Persistent parameters are a special key used during route creation to force route parameters to persist when omitted from a URL array.
-
_writeRoute() protected
Builds a route regular expression.
-
_writeUrl() protected
Converts a matching route array into a URL string.
-
compile() public
Compiles the route's regular expression.
-
compiled() public
Check if a Route has been compiled into a regular expression.
-
extensions() public deprecated
Get/Set the supported extensions for this route.
-
getExtensions() public
Get the supported extensions for this route.
-
getMiddleware() public
Get the names of the middleware that should be applied to this route.
-
getName() public
Get the standardized plugin.controller:action name for a route.
-
hostMatches() public
Check to see if the host matches the route requirements
-
match() public
Match by entity and map its fields to the URL pattern by comparing the field names with the template vars.
-
parse() public deprecated
Checks to see if the given URL can be parsed by this route.
-
parseRequest() public
Checks to see if the given URL can be parsed by this route.
-
setExtensions() public
Set the supported extensions for this route.
-
setHost() public
Set host requirement
-
setMethods() public
Set the accepted HTTP methods for this route.
-
setMiddleware() public
Set the names of the middleware that should be applied to this route.
-
setPass() public
Set the names of parameters that will be converted into passed parameters
-
setPatterns() public
Set regexp patterns for routing parameters
-
setPersist() public
Set the names of parameters that will persisted automatically
-
staticPath() public
Get the static path portion for this route.
Method Detail
__construct() ¶ public
__construct(string $template, array|string $defaults = [], array $options = [])
Constructor for a Route
Options
_ext- Defines the extensions used for this route._middleware- Define the middleware names for this route.pass- Copies the listed parameters into params['pass']._host- Define the host name pattern if you want this route to only match specific host names. You can use.*and to create wildcard subdomains/hosts e.g.*.example.commatches all subdomains onexample.com.
Parameters
-
string$template Template string with parameter placeholders
-
array|string$defaults optional Defaults for the route.
-
array$options optional Array of additional options for the Route
__set_state() ¶ public static
__set_state(array $fields): Cake\Routing\Route\Route
Set state magic method to support var_export
This method helps for applications that want to implement router caching.
Parameters
-
array$fields Key/Value of object attributes
Returns
Cake\Routing\Route\Route_checkEntity() ¶ protected
_checkEntity(ArrayAccess|array $entity): void
Checks that we really deal with an entity object
Parameters
-
ArrayAccess|array$entity Entity value from the URL options
Returns
voidThrows
RuntimeException_matchMethod() ¶ protected
_matchMethod(array $url): bool
Check whether or not the URL's HTTP method matches.
Parameters
-
array$url The array for the URL being generated.
Returns
bool_parseArgs() ¶ protected
_parseArgs(string $args, string $context): array
Parse passed parameters into a list of passed args.
Return true if a given named $param's $val matches a given $rule depending on $context. Currently implemented rule types are controller, action and match that can be combined with each other.
Parameters
-
string$args A string with the passed params. eg. /1/foo
-
string$context The current route context, which should contain controller/action keys.
Returns
array_parseExtension() ¶ protected
_parseExtension(string $url): array
Removes the extension from $url if it contains a registered extension. If no registered extension is found, no extension is returned and the URL is returned unmodified.
Parameters
-
string$url The url to parse.
Returns
array_persistParams() ¶ protected
_persistParams(array $url, array $params): array
Apply persistent parameters to a URL array. Persistent parameters are a special key used during route creation to force route parameters to persist when omitted from a URL array.
Parameters
-
array$url The array to apply persistent parameters to.
-
array$params An array of persistent values to replace persistent ones.
Returns
array_writeRoute() ¶ protected
_writeRoute(): void
Builds a route regular expression.
Uses the template, defaults and options properties to compile a regular expression that can be used to parse request strings.
Returns
void_writeUrl() ¶ protected
_writeUrl(array $params, array $pass = [], array $query = []): string
Converts a matching route array into a URL string.
Composes the string URL using the template used to create the route.
Parameters
-
array$params The params to convert to a string url
-
array$pass optional The additional passed arguments
-
array$query optional An array of parameters
Returns
stringcompile() ¶ public
compile(): string
Compiles the route's regular expression.
Modifies defaults property so all necessary keys are set and populates $this->names with the named routing elements.
Returns
stringcompiled() ¶ public
compiled(): bool
Check if a Route has been compiled into a regular expression.
Returns
boolextensions() ¶ public
extensions(array|string|null $extensions = null): array|null
Get/Set the supported extensions for this route.
Parameters
-
array|string|null$extensions optional The extensions to set. Use null to get.
Returns
array|nullgetExtensions() ¶ public
getExtensions(): string[]
Get the supported extensions for this route.
Returns
string[]getMiddleware() ¶ public
getMiddleware(): array
Get the names of the middleware that should be applied to this route.
Returns
arraygetName() ¶ public
getName(): string
Get the standardized plugin.controller:action name for a route.
Returns
stringhostMatches() ¶ public
hostMatches(string $host): bool
Check to see if the host matches the route requirements
Parameters
-
string$host The request's host name
Returns
boolmatch() ¶ public
match(array $url, array $context = []): bool|string
Match by entity and map its fields to the URL pattern by comparing the field names with the template vars.
If a routing key is defined in both $url and the entity, the value defined
in $url will be preferred.
Parameters
-
array$url Array of parameters to convert to a string.
-
array$context optional An array of the current request context. Contains information such as the current host, scheme, port, and base directory.
Returns
bool|stringparse() ¶ public
parse(string $url, string $method = ''): array|false
Checks to see if the given URL can be parsed by this route.
If the route can be parsed an array of parameters will be returned; if not false will be returned. String URLs are parsed if they match a routes regular expression.
Parameters
-
string$url The URL to attempt to parse.
-
string$method optional The HTTP method of the request being parsed.
Returns
array|falseparseRequest() ¶ public
parseRequest(Psr\Http\Message\ServerRequestInterface $request): array|false
Checks to see if the given URL can be parsed by this route.
If the route can be parsed an array of parameters will be returned; if not false will be returned.
Parameters
-
Psr\Http\Message\ServerRequestInterface$request The URL to attempt to parse.
Returns
array|falsesetExtensions() ¶ public
setExtensions(string[] $extensions): $this
Set the supported extensions for this route.
Parameters
-
string[]$extensions The extensions to set.
Returns
$thissetHost() ¶ public
setHost(string $host): $this
Set host requirement
Parameters
-
string$host The host name this route is bound to
Returns
$thissetMethods() ¶ public
setMethods(string[] $methods): $this
Set the accepted HTTP methods for this route.
Parameters
-
string[]$methods The HTTP methods to accept.
Returns
$thisThrows
InvalidArgumentExceptionsetMiddleware() ¶ public
setMiddleware(array $middleware): $this
Set the names of the middleware that should be applied to this route.
Parameters
-
array$middleware The list of middleware names to apply to this route. Middleware names will not be checked until the route is matched.
Returns
$thissetPass() ¶ public
setPass(string[] $names): $this
Set the names of parameters that will be converted into passed parameters
Parameters
-
string[]$names The names of the parameters that should be passed.
Returns
$thissetPatterns() ¶ public
setPatterns(string[] $patterns): $this
Set regexp patterns for routing parameters
If any of your patterns contain multibyte values, the multibytePattern
mode will be enabled.
Parameters
-
string[]$patterns The patterns to apply to routing elements
Returns
$thissetPersist() ¶ public
setPersist(array $names): $this
Set the names of parameters that will persisted automatically
Persistent parameters allow you to define which route parameters should be automatically
included when generating new URLs. You can override persistent parameters
by redefining them in a URL or remove them by setting the persistent parameter to false.
// remove a persistent 'date' parameter
Router::url(['date' => false', ...]);
Parameters
-
array$names The names of the parameters that should be passed.
Returns
$thisstaticPath() ¶ public
staticPath(): string
Get the static path portion for this route.
Returns
string