Class CakeRoute

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.

Direct Subclasses

Package: Cake\Routing\Route
Copyright: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
License: MIT License
Location: Cake/Routing/Route/CakeRoute.php

Properties summary

  • $_compiledRoute protected
    string
    The compiled route regular expression
  • $_greedy protected
    string

    Is this route a greedy route? Greedy routes have a /* in their template

  • $_headerMap protected
    array
    HTTP header shortcut map. Used for evaluating header-based route expressions.
  • $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

  • $options public
    array
    An array of additional parameters for the Route.
  • $template public
    string
    The routes template string.

Method Summary

  • __construct() public
    Constructor for a Route
  • __set_state() public static
    Set state magic method to support var_export
  • _matchNamed() protected
    Check if a named parameter matches the current rules.
  • _parseArgs() protected

    Parse passed and Named parameters into a list of passed args, and a hash of named parameters. The local and global configuration for named parameters will be used.

  • _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.
  • match() public
    Check if a URL array matches this route instance.
  • parse() public
    Checks to see if the given URL can be parsed by this route.
  • 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.

Method Detail

__construct()source public

__construct( string $template , array $defaults array() , array $options array() )

Constructor for a Route

Parameters

string $template
Template string with parameter placeholders
array $defaults optional array()
Array of defaults for the route.
array $options optional array()
Array of additional options for the Route

__set_state()source 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

CakeRoute
A new instance of the route

_matchNamed()source protected

_matchNamed( string $val , array $rule , string $context )

Check if a named parameter matches the current rules.

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 $val
The value of the named parameter
array $rule
The rule(s) to apply, can also be a match string
string $context
An array with additional context information (controller / action)

Returns

boolean

_parseArgs()source protected

_parseArgs( string $args , string $context )

Parse passed and Named parameters into a list of passed args, and a hash of named parameters. The local and global configuration for named parameters will be used.

Parameters

string $args
A string with the passed & named params. eg. /1/page:2
string $context
The current route context, which should contain controller/action keys.

Returns

array
Array of ($pass, $named)

_writeRoute()source 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()source protected

_writeUrl( array $params )

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.

Returns

string
Composed route string.

compile()source 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

array
Returns a string regular expression of the compiled route.

compiled()source public

compiled( )

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

Returns

boolean

match()source public

match( array $url )

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.

Returns

mixed
Either a string URL for the parameters if they match or false.

parse()source public

parse( string $url )

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.

Returns

mixed
Boolean false on failure, otherwise an array or parameters

persistParams()source public

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.

Properties detail

$_compiledRoutesource

protected string

The compiled route regular expression

null

$_greedysource

protected string

Is this route a greedy route? Greedy routes have a /* in their template

false

$_headerMapsource

protected array

HTTP header shortcut map. Used for evaluating header-based route expressions.

array(
    'type' => 'content_type',
    'method' => 'request_method',
    'server' => 'server_name'
)

$defaultssource

public array

Default parameters for a Route

array()

$keyssource

public array

An array of named segments in a Route. /:controller/:action/:id has 3 key elements

array()

$optionssource

public array

An array of additional parameters for the Route.

array()

$templatesource

public string

The routes template string.

null

© 2005–2017 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/2.10/class-CakeRoute.html