Class InflectedRoute

This route class will transparently inflect the controller and plugin routing parameters, so that requesting /my_controller is parsed as ['controller' => 'MyController']

Cake\Routing\Route\Route
Extended by Cake\Routing\Route\InflectedRoute

Direct Subclasses

Inherited Constants

Properties summary

  • boolean
    Flag for tracking whether or not the defaults have been inflected.

Inherited Properties

Method Summary

  • _underscore() protected
    Helper method for underscoring keys in a URL array.
  • match() public

    Underscores the prefix, controller and plugin params before passing them on to the parent class

  • parse() public

    Parses a string URL into an array. If it matches, it will convert the prefix, controller and plugin keys to their camelized form.

Method Detail

_underscore()source protected

_underscore( array $url )

Helper method for underscoring keys in a URL array.

Parameters

array $url
An array of URL keys.

Returns

array

match()source public

match( array $url , array $context [] )

Underscores the prefix, controller and plugin params before passing them on to the parent class

Parameters

array $url
Array of parameters to convert to a string.
array $context optional []

An array of the current request context. Contains information such as the current host, scheme, port, and base directory.

Returns

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

Overrides

Cake\Routing\Route\Route::match()

parse()source public

parse( string $url , string $method '' )

Parses a string URL into an array. If it matches, it will convert the prefix, controller and plugin keys to their camelized form.

Parameters

string $url
The URL to parse
string $method optional ''
The HTTP method being matched.

Returns

array|false
An array of request parameters, or false on failure.

Overrides

Cake\Routing\Route\Route::parse()

Methods inherited from Cake\Routing\Route\Route

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

Cake\Routing\Route\Route
A new instance of the route

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

boolean

_parseArgs()source protected

_parseArgs( string $args , string $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
string $context
The current route context, which should contain controller/action keys.

Returns

array
Array of passed args.

_parseExtension()source 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()source 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()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 , 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()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

string
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

extensions()source public

extensions( null|string|array $extensions null )

Get/Set the supported extensions for this route.

Deprecated

3.3.9 Use getExtensions/setExtensions instead.

Parameters

null|string|array $extensions optional null
The extensions to set. Use null to get.

Returns

array|null
The extensions or null.

getExtensions()source public

getExtensions( )

Get the supported extensions for this route.

Returns

array

getMiddleware()source public

getMiddleware( )

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

Returns

array

getName()source public

getName( )

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

Returns

string

hostMatches()source public

hostMatches( string $host )

Check to see if the host matches the route requirements

Parameters

string $host
The request's host name

Returns

boolean
Whether or not the host matches any conditions set in for this route.

parseRequest()source 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|false
An array of request parameters, or false on failure.

setExtensions()source public

setExtensions( array $extensions )

Set the supported extensions for this route.

Parameters

array $extensions
The extensions to set.

Returns


$this

setHost()source public

setHost( string $host )

Set host requirement

Parameters

string $host
The host name this route is bound to

Returns


$this

setMethods()source public

setMethods( array $methods )

Set the accepted HTTP methods for this route.

Parameters

array $methods
The HTTP methods to accept.

Returns


$this

Throws

InvalidArgumentException

setMiddleware()source 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()source public

setPass( array $names )

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

Parameters

array $names
The names of the parameters that should be passed.

Returns


$this

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

array $patterns
The patterns to apply to routing elements

Returns


$this

setPersist()source public

setPersist( array $names )

Set the names of parameters that will persisted automatically

Persistent parametesr 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()source public

staticPath( )

Get the static path portion for this route.

Returns

string

Properties detail

$_inflectedDefaultssource

protected boolean

Flag for tracking whether or not the defaults have been inflected.

Default values need to be inflected so that they match the inflections that match() will create.

false

© 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/3.4/class-Cake.Routing.Route.InflectedRoute.html