Class RedirectRoute
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.
Constants summary
-
array
VALID_METHODS['GET', 'PUT', 'POST', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD']
Properties summary
- $_compiledRoute protected
string|null
The compiled route regular expression
- $_extensions protected
string[]
List of connected extensions for this route.
- $_greedy protected
bool
Is this route a greedy route? Greedy routes have a
/*
in their template - $_name protected
string|null
The name for a route. Fetch with Route::getName();
- $braceKeys protected
bool
Track whether or not brace keys
{var}
were used. - $defaults public
array
Default parameters for a Route
- $keys public
array
An array of named segments in a Route.
- $middleware protected
array
List of middleware that should be applied.
- $options public
array
An array of additional parameters for the Route.
- $redirect public
array
The location to redirect to.
- $template public
string
The routes template string.
Method Summary
- _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.
- normalizeAndValidateMethods() protected
Normalize method names to upper case and validate that they are valid HTTP methods.
- parse() public
Parses a string URL into an array. Parsed URLs will result in an automatic redirection.
Method Detail
__construct() public
__construct(string $template, array $defaults, array $options)
Constructor
Parameters
-
string
$template Template string with parameter placeholders
-
array
$defaults optional Defaults for the route. Either a redirect=>value array or a CakePHP array URL.
-
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
static
A new instance of the route
_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
bool
_parseArgs() protected
_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.
Parameters
-
string
$args A string with the passed params. eg. /1/foo
-
array
$context The current route context, which should contain controller/action keys.
Returns
string[]
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
array
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
array
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
string
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
string
Returns a string regular expression of the compiled route.
compiled() public
compiled()
Check if a Route has been compiled into a regular expression.
Returns
bool
getExtensions() public
getExtensions()
Get the supported extensions for this route.
Returns
string[]
getMiddleware() public
getMiddleware()
Get the names of the middleware that should be applied to this route.
Returns
array
getName() public
getName()
Get the standardized plugin.controller:action name for a route.
Returns
string
hostMatches() public
hostMatches(string $host)
Check to see if the host matches the route requirements
Parameters
-
string
$host The request's host name
Returns
bool
Whether or not the host matches any conditions set in for this route.
match() public
match(array $url, array $context)
There is no reverse routing redirection routes.
Parameters
-
array
$url Array of parameters to convert to a string.
-
array
$context optional Array of request context parameters.
Returns
string|null
Always null, string return result unused.
normalizeAndValidateMethods() protected
normalizeAndValidateMethods(mixed $methods)
Normalize method names to upper case and validate that they are valid HTTP methods.
Parameters
-
string|string[]
$methods Methods.
Returns
string|string[]
Throws
InvalidArgumentException
When methods are not in `VALID_METHODS` list.
parse() public
parse(string $url, string $method)
Parses a string URL into an array. Parsed URLs will result in an automatic redirection.
Parameters
-
string
$url The URL to parse.
-
string
$method optional The HTTP method being used.
Returns
array|null
Null on failure. An exception is raised on a successful match. Array return type is unused.
Throws
Cake\Http\Exception\RedirectException
An exception is raised on successful match. This is used to halt route matching and signal to the middleware that a redirect should happen.
parseRequest() 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|null
An array of request parameters, or null on failure.
setExtensions() public
setExtensions(array $extensions)
Set the supported extensions for this route.
Parameters
-
string[]
$extensions The extensions to set.
Returns
$this
setHost() public
setHost(string $host)
Set host requirement
Parameters
-
string
$host The host name this route is bound to
Returns
$this
setMethods() public
setMethods(array $methods)
Set the accepted HTTP methods for this route.
Parameters
-
string[]
$methods The HTTP methods to accept.
Returns
$this
Throws
InvalidArgumentException
When methods are not in `VALID_METHODS` list.
setMiddleware() 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() public
setPass(array $names)
Set the names of parameters that will be converted into passed parameters
Parameters
-
string[]
$names The names of the parameters that should be passed.
Returns
$this
setPatterns() 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
-
string[]
$patterns The patterns to apply to routing elements
Returns
$this
setPersist() public
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', ...]);
Parameters
-
array
$names The names of the parameters that should be passed.
Returns
$this
setStatus() public
setStatus(int $status)
Sets the HTTP status
Parameters
-
int
$status The status code for this route
Returns
$this
staticPath() public
staticPath()
Get the static path portion for this route.
Returns
string
Property Detail
$_compiledRoute protected
The compiled route regular expression
Type
string|null
$_extensions protected
List of connected extensions for this route.
Type
string[]
$_greedy protected
Is this route a greedy route? Greedy routes have a /*
in their template
Type
bool
$_name protected
The name for a route. Fetch with Route::getName();
Type
string|null
$braceKeys protected
Track whether or not brace keys {var}
were used.
Type
bool
$defaults public
Default parameters for a Route
Type
array
$keys public
An array of named segments in a Route.
/{controller}/{action}/{id}
has 3 key elements
Type
array
$middleware protected
List of middleware that should be applied.
Type
array
$options public
An array of additional parameters for the Route.
Type
array
$redirect public
The location to redirect to.
Type
array
$template public
The routes template string.
Type
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.RedirectRoute.html