On this page
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.
Direct Subclasses
Indirect Subclasses
Constants summary
array
['GET','PUT','POST','PATCH','DELETE','OPTIONS','HEAD']
Properties summary
-
$_compiledRoute
protectedstring|null
-
$_extensions
protectedarray
-
$_greedy
protectedboolean
Is this route a greedy route? Greedy routes have a
/*
in their template -
$_name
protectedstring|null
-
$defaults
publicarray
-
$keys
publicarray
An array of named segments in a Route.
/:controller/:action/:id
has 3 key elements -
$middleware
protectedarray
-
$options
publicarray
-
$template
publicstring|null
Method Summary
-
__construct() publicConstructor for a Route
- Set state magic method to support var_export
-
_matchMethod() protectedCheck whether or not the URL's HTTP method matches.
-
_parseArgs() protectedParse 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() protectedBuilds a route regular expression.
-
_writeUrl() protectedConverts a matching route array into a URL string.
-
compile() publicCompiles the route's regular expression.
-
compiled() publicCheck if a Route has been compiled into a regular expression.
-
extensions() publicGet/Set the supported extensions for this route.
-
getExtensions() publicGet the supported extensions for this route.
-
getMiddleware() publicGet the names of the middleware that should be applied to this route.
-
getName() publicGet the standardized plugin.controller:action name for a route.
-
hostMatches() publicCheck to see if the host matches the route requirements
-
match() publicCheck if a URL array matches this route instance.
-
parse() publicChecks to see if the given URL can be parsed by this route.
-
parseRequest() publicChecks to see if the given URL can be parsed by this route.
-
setExtensions() publicSet the supported extensions for this route.
-
setHost() publicSet host requirement
-
setMethods() publicSet the accepted HTTP methods for this route.
-
setMiddleware() publicSet the names of the middleware that should be applied to this route.
-
setPass() publicSet the names of parameters that will be converted into passed parameters
-
setPatterns() publicSet regexp patterns for routing parameters
-
setPersist() publicSet the names of parameters that will persisted automatically
-
staticPath() publicGet the static path portion for this route.
Method Detail
__construct()source 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.com
matches 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()source public static
__set_state( array $fields )
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
A new instance of the route
_matchMethod()source protected
_matchMethod( array $url )
Check whether or not the URL's HTTP method matches.
Parameters
-
array
$url
- The array for the URL being generated.
Returns
boolean_parseArgs()source protected
_parseArgs( string $args , string $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.
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()source protected
_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.
Parameters
-
string
$url
- The url to parse.
Returns
arraycontaining url, extension
_persistParams()source protected
_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.
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()source protected
_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()source protected
_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.
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()source public
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.
Returns
stringReturns a string regular expression of the compiled route.
compiled()source public
compiled( )
Check if a Route has been compiled into a regular expression.
Returns
booleanextensions()source public
extensions( null|string|array $extensions null )
Get/Set the supported extensions for this route.
Deprecated
3.3.9 Use getExtensions/setExtensions instead.Parameters
-
null|string|array
$extensions
optional null - The extensions to set. Use null to get.
Returns
array|nullThe extensions or null.
getExtensions()source public
getExtensions( )
Get the supported extensions for this route.
Returns
arraygetMiddleware()source public
getMiddleware( )
Get the names of the middleware that should be applied to this route.
Returns
arraygetName()source public
getName( )
Get the standardized plugin.controller:action name for a route.
Returns
stringhostMatches()source public
hostMatches( string $host )
Check to see if the host matches the route requirements
Parameters
-
string
$host
- The request's host name
Returns
booleanWhether or not the host matches any conditions set in for this route.
match()source public
match( array $url , array $context [] )
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()source public
parse( string $url , string $method '' )
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.
Deprecated
3.4.0 Use/implement parseRequest() instead as it provides more flexibility/control.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.
parseRequest()source public
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.
Parameters
-
Psr\Http\Message\ServerRequestInterface
$request
- The URL to attempt to parse.
Returns
array|falseAn array of request parameters, or false on failure.
setExtensions()source public
setExtensions( array $extensions )
Set the supported extensions for this route.
Parameters
-
array
$extensions
- The extensions to set.
Returns
$this
setHost()source public
setHost( string $host )
Set host requirement
Parameters
-
string
$host
- The host name this route is bound to
Returns
$this
setMethods()source public
setMethods( array $methods )
Set the accepted HTTP methods for this route.
Parameters
-
array
$methods
- The HTTP methods to accept.
Returns
$this
Throws
InvalidArgumentExceptionsetMiddleware()source public
setMiddleware( array $middleware )
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
$this
setPass()source public
setPass( array $names )
Set the names of parameters that will be converted into passed parameters
Parameters
-
array
$names
- The names of the parameters that should be passed.
Returns
$this
setPatterns()source public
setPatterns( array $patterns )
Set regexp patterns for routing parameters
If any of your patterns contain multibyte values, the multibytePattern
mode will be enabled.
Parameters
-
array
$patterns
- The patterns to apply to routing elements
Returns
$this
setPersist()source public
setPersist( array $names )
Set the names of parameters that will persisted automatically
Persistent parametesr 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
$this
Properties detail
$_greedysource
protected boolean
Is this route a greedy route? Greedy routes have a /*
in their template
false
$keyssource
public array
An array of named segments in a Route. /:controller/:action/:id
has 3 key elements
[]
© 2005–2017 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/3.4/class-Cake.Routing.Route.Route.html