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.

Namespace: Cake\Routing\Route

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

  • __construct() public

    Constructor

  • __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.

  • _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.

  • getExtensions() public

    Get the supported extensions for this route.

  • getMiddleware() public

    Get the names of the middleware that should be applied to this route.

  • getName() public

    Get the standardized plugin.controller:action name for a route.

  • hostMatches() public

    Check to see if the host matches the route requirements

  • match() public

    There is no reverse routing redirection routes.

  • 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.

  • parseRequest() public

    Checks to see if the given URL can be parsed by this route.

  • setExtensions() public

    Set the supported extensions for this route.

  • setHost() public

    Set host requirement

  • setMethods() public

    Set the accepted HTTP methods for this route.

  • setMiddleware() public

    Set the names of the middleware that should be applied to this route.

  • setPass() public

    Set the names of parameters that will be converted into passed parameters

  • setPatterns() public

    Set regexp patterns for routing parameters

  • setPersist() public

    Set the names of parameters that will persisted automatically

  • setStatus() public

    Sets the HTTP status

  • staticPath() public

    Get the static path portion for this route.

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