CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.10 Red Velvet API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 3.10
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Auth
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Filesystem
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
      • Exception
      • Filter
      • Middleware
      • Route
    • Shell
    • TestSuite
    • Utility
    • Validation
    • View

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.

Namespace: Cake\Routing\Route

Constants

  • array
    VALID_METHODS ¶
    ['GET', 'PUT', 'POST', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD']

    Valid HTTP methods.

Property 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. /:controller/:action/:id has 3 key elements

  • $middleware protected
    array

    List of middleware that should be applied.

  • $options public
    array

    An array of additional parameters for the Route.

  • $template public
    string|null

    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 deprecated

    Get/Set the supported extensions for this route.

  • 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

    Check if a URL array matches this route instance.

  • parse() public deprecated

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

  • 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

  • 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.
  • _middleware - Define the middleware names for this route.
  • pass - Copies the listed parameters into params['pass'].
  • _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 on example.com.
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): Cake\Routing\Route\Route

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
Cake\Routing\Route\Route

_matchMethod() ¶ protected

_matchMethod(array $url): bool

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, string $context): array

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

_parseExtension() ¶ protected

_parseExtension(string $url): array

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

_persistParams() ¶ protected

_persistParams(array $url, array $params): array

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

_writeRoute() ¶ protected

_writeRoute(): void

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.

Returns
void

_writeUrl() ¶ protected

_writeUrl(array $params, array $pass = [], array $query = []): string

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

compile() ¶ public

compile(): string

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

compiled() ¶ public

compiled(): bool

Check if a Route has been compiled into a regular expression.

Returns
bool

extensions() ¶ public

extensions(array|string|null $extensions = null): array|null

Get/Set the supported extensions for this route.

Parameters
array|string|null $extensions optional

The extensions to set. Use null to get.

Returns
array|null

getExtensions() ¶ public

getExtensions(): string[]

Get the supported extensions for this route.

Returns
string[]

getMiddleware() ¶ public

getMiddleware(): array

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

Returns
array

getName() ¶ public

getName(): string

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

Returns
string

hostMatches() ¶ public

hostMatches(string $host): bool

Check to see if the host matches the route requirements

Parameters
string $host

The request's host name

Returns
bool

match() ¶ public

match(array $url, array $context = []): string|false

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
string|false

parse() ¶ public

parse(string $url, string $method = ''): array|false

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.

string $method optional

The HTTP method of the request being parsed.

Returns
array|false

parseRequest() ¶ public

parseRequest(Psr\Http\Message\ServerRequestInterface $request): array|false

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|false

setExtensions() ¶ public

setExtensions(string[] $extensions): $this

Set the supported extensions for this route.

Parameters
string[] $extensions

The extensions to set.

Returns
$this

setHost() ¶ public

setHost(string $host): $this

Set host requirement

Parameters
string $host

The host name this route is bound to

Returns
$this

setMethods() ¶ public

setMethods(string[] $methods): $this

Set the accepted HTTP methods for this route.

Parameters
string[] $methods

The HTTP methods to accept.

Returns
$this
Throws
InvalidArgumentException

setMiddleware() ¶ public

setMiddleware(array $middleware): $this

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(string[] $names): $this

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(string[] $patterns): $this

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): $this

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

staticPath() ¶ public

staticPath(): string

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

$template ¶ public

The routes template string.

Type
string|null
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs