PluginShortRoute
extends InflectedRoute
in package
Plugin short route, that copies the plugin param to the controller parameters It is used for supporting /{plugin} routes.
Table of Contents
Constants
- VALID_METHODS = ['GET', 'PUT', 'POST', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD']
- Valid HTTP methods.
- PLACEHOLDER_REGEX = '#\{([a-z][a-z0-9-_]*)\}#i'
- Regex for matching braced placholders in route template.
Properties
- $defaults : array<string|int, mixed>
- Default parameters for a Route
- $keys : array<string|int, mixed>
- An array of named segments in a Route.
- $options : array<string|int, mixed>
- An array of additional parameters for the Route.
- $template : string
- The routes template string.
- $_compiledRoute : string|null
- The compiled route regular expression
- $_extensions : array<string|int, string>
- List of connected extensions for this route.
- $_greedy : bool
- Is this route a greedy route? Greedy routes have a `/*` in their template
- $_inflectedDefaults : bool
- Flag for tracking whether the defaults have been inflected.
- $_name : string|null
- The name for a route. Fetch with Route::getName();
- $braceKeys : bool
- Track whether brace keys `{var}` were used.
- $middleware : array<string|int, mixed>
- List of middleware that should be applied.
Methods
- __construct() : mixed
- Constructor for a Route
- __set_state() : static
- Set state magic method to support var_export
- compile() : string
- Compiles the route's regular expression.
- compiled() : bool
- Check if a Route has been compiled into a regular expression.
- getExtensions() : array<string|int, string>
- Get the supported extensions for this route.
- getMiddleware() : array<string|int, mixed>
- Get the names of the middleware that should be applied to this route.
- getName() : string
- Get the standardized plugin.controller:action name for a route.
- hostMatches() : bool
- Check to see if the host matches the route requirements
- match() : string|null
- Reverses route plugin shortcut URLs. If the plugin and controller are not the same the match is an auto fail.
- parse() : array<string|int, mixed>|null
- Parses a string URL into an array. If a plugin key is found, it will be copied to the controller parameter.
- parseRequest() : array<string|int, mixed>|null
- Checks to see if the given URL can be parsed by this route.
- setExtensions() : $this
- Set the supported extensions for this route.
- setHost() : $this
- Set host requirement
- setMethods() : $this
- Set the accepted HTTP methods for this route.
- setMiddleware() : $this
- Set the names of the middleware that should be applied to this route.
- setPass() : $this
- Set the names of parameters that will be converted into passed parameters
- setPatterns() : $this
- Set regexp patterns for routing parameters
- setPersist() : $this
- Set the names of parameters that will persisted automatically
- staticPath() : string
- Get the static path portion for this route.
- _matchMethod() : bool
- Check whether the URL's HTTP method matches.
- _parseArgs() : array<string|int, string>
- Parse passed parameters into a list of passed args.
- _parseExtension() : array<string|int, mixed>
- Removes the extension from $url if it contains a registered extension.
- _persistParams() : array<string|int, mixed>
- 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.
- _underscore() : array<string|int, mixed>
- Helper method for underscoring keys in a URL array.
- _writeRoute() : void
- Builds a route regular expression.
- _writeUrl() : string
- Converts a matching route array into a URL string.
- normalizeAndValidateMethods() : array<string|int, string>|string
- Normalize method names to upper case and validate that they are valid HTTP methods.
Constants
VALID_METHODS
Valid HTTP methods.
public
array<string|int, string>
VALID_METHODS
= ['GET', 'PUT', 'POST', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD']
PLACEHOLDER_REGEX
Regex for matching braced placholders in route template.
protected
string
PLACEHOLDER_REGEX
= '#\{([a-z][a-z0-9-_]*)\}#i'
Properties
$defaults
Default parameters for a Route
public
array<string|int, mixed>
$defaults
= []
$keys
An array of named segments in a Route.
public
array<string|int, mixed>
$keys
= []
/{controller}/{action}/{id}
has 3 key elements
$options
An array of additional parameters for the Route.
public
array<string|int, mixed>
$options
= []
$template
The routes template string.
public
string
$template
$_compiledRoute
The compiled route regular expression
protected
string|null
$_compiledRoute
$_extensions
List of connected extensions for this route.
protected
array<string|int, string>
$_extensions
= []
$_greedy
Is this route a greedy route? Greedy routes have a `/*` in their template
protected
bool
$_greedy
= false
$_inflectedDefaults
Flag for tracking whether the defaults have been inflected.
protected
bool
$_inflectedDefaults
= false
Default values need to be inflected so that they match the inflections that match() will create.
$_name
The name for a route. Fetch with Route::getName();
protected
string|null
$_name
$braceKeys
Track whether brace keys `{var}` were used.
protected
bool
$braceKeys
= true
$middleware
List of middleware that should be applied.
protected
array<string|int, mixed>
$middleware
= []
Methods
__construct()
Constructor for a Route
public
__construct(string $template[, array<string|int, mixed> $defaults = [] ][, array<string, mixed> $options = [] ]) : mixed
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']. -
_method
- Defines the HTTP method(s) the route applies to. It can be a string or array of valid HTTP method name. -
_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
. - '_port` - Define the port if you want this route to only match specific port number.
- '_urldecode' - Set to
false
to disable URL decoding before route parsing.
Parameters
- $template : string
-
Template string with parameter placeholders
- $defaults : array<string|int, mixed> = []
-
Defaults for the route.
- $options : array<string, mixed> = []
-
Array of additional options for the Route
Tags
__set_state()
Set state magic method to support var_export
public
static __set_state(array<string, mixed> $fields) : static
This method helps for applications that want to implement router caching.
Parameters
- $fields : array<string, mixed>
-
Key/Value of object attributes
Return values
static —A new instance of the route
compile()
Compiles the route's regular expression.
public
compile() : string
Modifies defaults property so all necessary keys are set and populates $this->names with the named routing elements.
Return values
string —Returns a string regular expression of the compiled route.
compiled()
Check if a Route has been compiled into a regular expression.
public
compiled() : bool
Return values
boolgetExtensions()
Get the supported extensions for this route.
public
getExtensions() : array<string|int, string>
Return values
array<string|int, string>getMiddleware()
Get the names of the middleware that should be applied to this route.
public
getMiddleware() : array<string|int, mixed>
Return values
array<string|int, mixed>getName()
Get the standardized plugin.controller:action name for a route.
public
getName() : string
Return values
stringhostMatches()
Check to see if the host matches the route requirements
public
hostMatches(string $host) : bool
Parameters
- $host : string
-
The request's host name
Return values
bool —Whether the host matches any conditions set in for this route.
match()
Reverses route plugin shortcut URLs. If the plugin and controller are not the same the match is an auto fail.
public
match(array<string|int, mixed> $url[, array<string|int, mixed> $context = [] ]) : string|null
Parameters
- $url : array<string|int, mixed>
-
Array of parameters to convert to a string.
- $context : array<string|int, mixed> = []
-
An array of the current request context. Contains information such as the current host, scheme, port, and base directory.
Return values
string|null —Either a string URL for the parameters if they match or null.
parse()
Parses a string URL into an array. If a plugin key is found, it will be copied to the controller parameter.
public
parse(string $url[, string $method = '' ]) : array<string|int, mixed>|null
Parameters
- $url : string
-
The URL to parse
- $method : string = ''
-
The HTTP method
Return values
array<string|int, mixed>|null —An array of request parameters, or null on failure.
parseRequest()
Checks to see if the given URL can be parsed by this route.
public
parseRequest(ServerRequestInterface $request) : array<string|int, mixed>|null
If the route can be parsed an array of parameters will be returned; if not
null
will be returned.
Parameters
- $request : ServerRequestInterface
-
The URL to attempt to parse.
Return values
array<string|int, mixed>|null —An array of request parameters, or null
on failure.
setExtensions()
Set the supported extensions for this route.
public
setExtensions(array<string|int, string> $extensions) : $this
Parameters
- $extensions : array<string|int, string>
-
The extensions to set.
Return values
$thissetHost()
Set host requirement
public
setHost(string $host) : $this
Parameters
- $host : string
-
The host name this route is bound to
Return values
$thissetMethods()
Set the accepted HTTP methods for this route.
public
setMethods(array<string|int, string> $methods) : $this
Parameters
- $methods : array<string|int, string>
-
The HTTP methods to accept.
Tags
Return values
$thissetMiddleware()
Set the names of the middleware that should be applied to this route.
public
setMiddleware(array<string|int, mixed> $middleware) : $this
Parameters
- $middleware : array<string|int, mixed>
-
The list of middleware names to apply to this route. Middleware names will not be checked until the route is matched.
Return values
$thissetPass()
Set the names of parameters that will be converted into passed parameters
public
setPass(array<string|int, string> $names) : $this
Parameters
- $names : array<string|int, string>
-
The names of the parameters that should be passed.
Return values
$thissetPatterns()
Set regexp patterns for routing parameters
public
setPatterns(array<string|int, string> $patterns) : $this
If any of your patterns contain multibyte values, the multibytePattern
mode will be enabled.
Parameters
- $patterns : array<string|int, string>
-
The patterns to apply to routing elements
Return values
$thissetPersist()
Set the names of parameters that will persisted automatically
public
setPersist(array<string|int, mixed> $names) : $this
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
- $names : array<string|int, mixed>
-
The names of the parameters that should be passed.
Return values
$thisstaticPath()
Get the static path portion for this route.
public
staticPath() : string
Return values
string_matchMethod()
Check whether the URL's HTTP method matches.
protected
_matchMethod(array<string|int, mixed> $url) : bool
Parameters
- $url : array<string|int, mixed>
-
The array for the URL being generated.
Return values
bool_parseArgs()
Parse passed parameters into a list of passed args.
protected
_parseArgs(string $args, array<string|int, mixed> $context) : array<string|int, string>
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
- $args : string
-
A string with the passed params. eg. /1/foo
- $context : array<string|int, mixed>
-
The current route context, which should contain controller/action keys.
Return values
array<string|int, string> —Array of passed args.
_parseExtension()
Removes the extension from $url if it contains a registered extension.
protected
_parseExtension(string $url) : array<string|int, mixed>
If no registered extension is found, no extension is returned and the URL is returned unmodified.
Parameters
- $url : string
-
The url to parse.
Return values
array<string|int, mixed> —containing url, extension
_persistParams()
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.
protected
_persistParams(array<string|int, mixed> $url, array<string|int, mixed> $params) : array<string|int, mixed>
Parameters
- $url : array<string|int, mixed>
-
The array to apply persistent parameters to.
- $params : array<string|int, mixed>
-
An array of persistent values to replace persistent ones.
Return values
array<string|int, mixed> —An array with persistent parameters applied.
_underscore()
Helper method for underscoring keys in a URL array.
protected
_underscore(array<string|int, mixed> $url) : array<string|int, mixed>
Parameters
- $url : array<string|int, mixed>
-
An array of URL keys.
Return values
array<string|int, mixed>_writeRoute()
Builds a route regular expression.
protected
_writeRoute() : void
Uses the template, defaults and options properties to compile a regular expression that can be used to parse request strings.
_writeUrl()
Converts a matching route array into a URL string.
protected
_writeUrl(array<string|int, mixed> $params[, array<string|int, mixed> $pass = [] ][, array<string|int, mixed> $query = [] ]) : string
Composes the string URL using the template used to create the route.
Parameters
- $params : array<string|int, mixed>
-
The params to convert to a string url
- $pass : array<string|int, mixed> = []
-
The additional passed arguments
- $query : array<string|int, mixed> = []
-
An array of parameters
Return values
string —Composed route string.
normalizeAndValidateMethods()
Normalize method names to upper case and validate that they are valid HTTP methods.
protected
normalizeAndValidateMethods(array<string|int, string>|string $methods) : array<string|int, string>|string
Parameters
- $methods : array<string|int, string>|string
-
Methods.