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
Properties summary
-
$_compiledRoute
protectedstring
The compiled route regular expression -
$_extensions
protectedarray
List of connected extensions for this route. -
$_greedy
protectedstring
Is this route a greedy route? Greedy routes have a
/*
in their template -
$_name
protectedstring
The name for a route. Fetch with Route::getName(); -
$defaults
publicarray
Default parameters for a Route -
$keys
publicarray
An array of named segments in a Route.
/:controller/:action/:id
has 3 key elements -
$options
publicarray
An array of additional parameters for the Route. -
$template
publicstring
The 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
Get/Set 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. -
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 )
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
_matchMethod() 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
_parseArgs() 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
Array of passed args.
_parseExtension() 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
containing url, extension
_persistParams() 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
An array with persistent parameters applied.
_writeRoute() 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() 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
Composed route string.
compile() 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
Returns a string regular expression of the compiled route.
compiled() public ¶
compiled( )
Check if a Route has been compiled into a regular expression.
Returns
extensions() public ¶
extensions( null|string|array $extensions = null )
Get/Set the supported extensions for this route.
Parameters
- null|string|array $extensions optional null
- The extensions to set. Use null to get.
Returns
The extensions or null.
getName() public ¶
getName( )
Get the standardized plugin.controller:action name for a route.
Returns
match() 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
Either a string URL for the parameters if they match or false.
parse() public ¶
parse( string $url )
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.
Returns
An array of request parameters, or false on failure.