Class Route
A single Route used by the Router to connect requests to parameter maps.
Not normally created as a standalone. Use Router::connect() to create Routes for your application.
Property Summary
-
$_compiledRoute protected
stringThe compiled route regular expression
-
$_extensions protected
arrayList of connected extensions for this route.
-
$_greedy protected
stringIs this route a greedy route? Greedy routes have a
/*in their template -
$_name protected
stringThe name for a route. Fetch with Route::getName();
-
$defaults public
arrayDefault parameters for a Route
-
$keys public
arrayAn array of named segments in a Route.
/:controller/:action/:idhas 3 key elements -
$options public
arrayAn array of additional parameters for the Route.
-
$template public
stringThe routes template string.
Method Summary
-
__construct() public
Constructor for a Route
-
__set_state() public static
Set state magic method to support var_export
-
_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.
-
getName() public
Get the standardized plugin.controller:action name for a route.
-
match() public
Check if a URL array matches this route instance.
-
parse() public
Checks to see if the given URL can be parsed by this route.
-
setExtensions() public
Set the supported extensions for this route.
-
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.pass- Copies the listed parameters into params['pass'].
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\RouteA new instance of the route
_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
arrayArray of passed args.
_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
arraycontaining url, extension
_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
arrayAn array with persistent parameters applied.
_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
stringComposed route string.
compile() ¶ public
compile(): array
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
arrayReturns a string regular expression of the compiled route.
compiled() ¶ public
compiled(): bool
Check if a Route has been compiled into a regular expression.
Returns
boolextensions() ¶ public
extensions(null|string|array $extensions = null): array|null
Get/Set the supported extensions for this route.
Parameters
-
null|string|array$extensions optional The extensions to set. Use null to get.
Returns
array|nullThe extensions or null.
getExtensions() ¶ public
getExtensions(): array
Get the supported extensions for this route.
Returns
arraygetName() ¶ public
getName(): string
Get the standardized plugin.controller:action name for a route.
Returns
stringmatch() ¶ public
match(array $url, array $context = []): string|false
Check if a URL array matches this route instance.
If the URL matches the route parameters and settings, then return a generated string URL. If the URL doesn't match the route parameters, false will be returned. This method handles the reverse routing or conversion of URL arrays into string URLs.
Parameters
-
array$url An array of parameters to check matching with.
-
array$context optional An array of the current request context. Contains information such as the current host, scheme, port, base directory and other url params.
Returns
string|falseEither a string URL for the parameters if they match or false.
parse() ¶ 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|falseAn array of request parameters, or false on failure.
setExtensions() ¶ public
setExtensions(array $extensions): $this
Set the supported extensions for this route.
Parameters
-
array$extensions The extensions to set.
Returns
$thisstaticPath() ¶ public
staticPath(): string
Get the static path portion for this route.
Returns
string