This route class will transparently inflect the controller, action and plugin routing parameters, so that requesting /my-plugin/my-controller/my-action
is parsed as ['plugin' => 'MyPlugin', 'controller' => 'MyController', 'action' => 'myAction']
array
['GET', 'PUT', 'POST', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD']
string|null
The compiled route regular expression
string[]
List of connected extensions for this route.
bool
Is this route a greedy route? Greedy routes have a /*
in their template
bool
Flag for tracking whether or not the defaults have been inflected.
string|null
The name for a route. Fetch with Route::getName();
bool
Track whether or not brace keys {var}
were used.
array
Default parameters for a Route
array
An array of named segments in a Route.
array
List of middleware that should be applied.
array
An array of additional parameters for the Route.
string
The routes template string.
Camelizes the previously dashed plugin route taking into account plugin vendors
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.
Dasherizes the controller, action and plugin params before passing them on to the parent class.
Normalize method names to upper case and validate that they are valid HTTP methods.
Parses a string URL into an array. If it matches, it will convert the controller and plugin keys to their CamelCased form and action key to camelBacked form.
__construct(string $template, array $defaults, array $options)
Constructor for a Route
_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.com
matches all subdomains on example.com
._method
- Defines the HTTP method(s) the route applies to. It can be a string or array of valid HTTP method name.string
$template Template string with parameter placeholders
array
$defaults optional Defaults for the route.
array
$options optional Array of additional options for the Route
InvalidArgumentException
__set_state(array $fields)
Set state magic method to support var_export
This method helps for applications that want to implement router caching.
array
$fields Key/Value of object attributes
static
A new instance of the route
_camelizePlugin(string $plugin)
Camelizes the previously dashed plugin route taking into account plugin vendors
string
$plugin Plugin name
string
_dasherize(array $url)
Helper method for dasherizing keys in a URL array.
array
$url An array of URL keys.
array
_matchMethod(array $url)
Check whether or not the URL's HTTP method matches.
array
$url The array for the URL being generated.
bool
_parseArgs(string $args, array $context)
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.
string
$args A string with the passed params. eg. /1/foo
array
$context The current route context, which should contain controller/action keys.
string[]
Array of passed args.
_parseExtension(string $url)
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.
string
$url The url to parse.
array
containing url, extension
_persistParams(array $url, array $params)
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.
array
$url The array to apply persistent parameters to.
array
$params An array of persistent values to replace persistent ones.
array
An array with persistent parameters applied.
_writeRoute()
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.
_writeUrl(array $params, array $pass, array $query)
Converts a matching route array into a URL string.
Composes the string URL using the template used to create the route.
array
$params The params to convert to a string url
array
$pass optional The additional passed arguments
array
$query optional An array of parameters
string
Composed route string.
compile()
Compiles the route's regular expression.
Modifies defaults property so all necessary keys are set and populates $this->names with the named routing elements.
string
Returns a string regular expression of the compiled route.
compiled()
Check if a Route has been compiled into a regular expression.
bool
getExtensions()
Get the supported extensions for this route.
string[]
getMiddleware()
Get the names of the middleware that should be applied to this route.
array
getName()
Get the standardized plugin.controller:action name for a route.
string
hostMatches(string $host)
Check to see if the host matches the route requirements
string
$host The request's host name
bool
Whether or not the host matches any conditions set in for this route.
match(array $url, array $context)
Dasherizes the controller, action and plugin params before passing them on to the parent class.
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.
string|null
Either a string URL or null.
normalizeAndValidateMethods(mixed $methods)
Normalize method names to upper case and validate that they are valid HTTP methods.
string|string[]
$methods Methods.
string|string[]
InvalidArgumentException
parse(string $url, string $method)
Parses a string URL into an array. If it matches, it will convert the controller and plugin keys to their CamelCased form and action key to camelBacked form.
string
$url The URL to parse
string
$method optional The HTTP method.
array|null
An array of request parameters, or null on failure.
parseRequest(\Psr\Http\Message\ServerRequestInterface $request)
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.
\Psr\Http\Message\ServerRequestInterface
$request The URL to attempt to parse.
array|null
An array of request parameters, or null on failure.
setExtensions(array $extensions)
Set the supported extensions for this route.
string[]
$extensions The extensions to set.
$this
setHost(string $host)
Set host requirement
string
$host The host name this route is bound to
$this
setMethods(array $methods)
Set the accepted HTTP methods for this route.
string[]
$methods The HTTP methods to accept.
$this
InvalidArgumentException
setMiddleware(array $middleware)
Set the names of the middleware that should be applied to this route.
array
$middleware The list of middleware names to apply to this route. Middleware names will not be checked until the route is matched.
$this
setPass(array $names)
Set the names of parameters that will be converted into passed parameters
string[]
$names The names of the parameters that should be passed.
$this
setPatterns(array $patterns)
Set regexp patterns for routing parameters
If any of your patterns contain multibyte values, the multibytePattern
mode will be enabled.
string[]
$patterns The patterns to apply to routing elements
$this
setPersist(array $names)
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', ...]);
array
$names The names of the parameters that should be passed.
$this
staticPath()
Get the static path portion for this route.
string
The compiled route regular expression
string|null
List of connected extensions for this route.
string[]
Is this route a greedy route? Greedy routes have a /*
in their template
bool
Flag for tracking whether or not the defaults have been inflected.
Default values need to be inflected so that they match the inflections that match() will create.
bool
The name for a route. Fetch with Route::getName();
string|null
Track whether or not brace keys {var}
were used.
bool
Default parameters for a Route
array
An array of named segments in a Route.
/{controller}/{action}/{id}
has 3 key elements
array
List of middleware that should be applied.
array
An array of additional parameters for the Route.
array
The routes template string.
string
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.1/class-Cake.Routing.Route.DashedRoute.html