RedirectRoute
extends Route
in package
Redirect route will perform an immediate redirect. Redirect routes are useful when you want to have Routing layer redirects occur in your application, for when URLs move.
Redirection is signalled by an exception that halts route matching and defines the redirect URL and status code.
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.
- $redirect : array<string|int, mixed>
- The location to redirect to.
- $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
- $_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
- __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
- There is no reverse routing redirection routes.
- parse() : array<string|int, mixed>|null
- Parses a string URL into an array. Parsed URLs will result in an automatic redirection.
- 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
- setStatus() : $this
- Sets the HTTP status
- 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.
- _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
= []
$redirect
The location to redirect to.
public
array<string|int, mixed>
$redirect
$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
$_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
public
__construct(string $template[, array<string|int, mixed> $defaults = [] ][, array<string, mixed> $options = [] ]) : mixed
Parameters
- $template : string
-
Template string with parameter placeholders
- $defaults : array<string|int, mixed> = []
-
Defaults for the route. Either a redirect=>value array or a CakePHP array URL.
- $options : array<string, mixed> = []
-
Array of additional options for the Route
__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()
There is no reverse routing redirection routes.
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> = []
-
Array of request context parameters.
Return values
string|null —Always null, string return result unused.
parse()
Parses a string URL into an array. Parsed URLs will result in an automatic redirection.
public
parse(string $url[, string $method = '' ]) : array<string|int, mixed>|null
Parameters
- $url : string
-
The URL to parse.
- $method : string = ''
-
The HTTP method being used.
Tags
Return values
array<string|int, mixed>|null —Null on failure. An exception is raised on a successful match. Array return type is unused.
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
$thissetStatus()
Sets the HTTP status
public
setStatus(int $status) : $this
Parameters
- $status : int
-
The status code for this route
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.
_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.