W3cubDocs

/CakePHP 4.4

Class RouteCollection

Contains a collection of routes.

Provides an interface for adding/removing routes and parsing/generating URLs with the routes it contains.

Namespace: Cake\Routing

Property Summary

  • $_extensions protected
    array<string>

    Route extensions

  • $_middleware protected
    array

    A map of middleware names and the related objects.

  • $_middlewareGroups protected
    array

    A map of middleware group names and the related middleware names.

  • $_named protected
    arrayCake\Routing\Route\Route>

    The hash map of named routes that are in this collection.

  • $_paths protected
    array<string, arrayCake\Routing\Route\Route>>

    Routes indexed by path prefix.

  • $_routeTable protected
    array<string, arrayCake\Routing\Route\Route>>

    The routes connected to this collection.

Method Summary

  • _getNames() protected

    Get the set of names from the $url. Accepts both older style array urls, and newer style urls containing '_name'

  • add() public

    Add a route to the collection.

  • getExtensions() public

    Get the extensions that can be handled.

  • getMiddleware() public

    Get an array of middleware given a list of names

  • hasMiddleware() public

    Check if the named middleware has been registered.

  • hasMiddlewareGroup() public

    Check if the named middleware group has been created.

  • match() public

    Reverse route or match a $url array with the connected routes.

  • middlewareExists() public

    Check if the named middleware or middleware group has been registered.

  • middlewareGroup() public

    Add middleware to a middleware group

  • named() public

    Get the connected named routes.

  • parse() public

    Takes the URL string and iterates the routes until one is able to parse the route.

  • parseRequest() public

    Takes the ServerRequestInterface, iterates the routes until one is able to parse the route.

  • registerMiddleware() public

    Register a middleware with the RouteCollection.

  • routes() public

    Get all the connected routes as a flat list.

  • setExtensions() public

    Set the extensions that the route collection can handle.

Method Detail

_getNames() protected

_getNames(array $url): array<string>

Get the set of names from the $url. Accepts both older style array urls, and newer style urls containing '_name'

Parameters

array $url

The url to match.

Returns

array<string>

add() public

add(Cake\Routing\Route\Route $route, array<string, mixed> $options = []): void

Add a route to the collection.

Parameters

Cake\Routing\Route\Route $route

The route object to add.

array<string, mixed> $options optional

Additional options for the route. Primarily for the _name option, which enables named routes.

Returns

void

getExtensions() public

getExtensions(): array<string>

Get the extensions that can be handled.

Returns

array<string>

getMiddleware() public

getMiddleware(array<string> $names): array

Get an array of middleware given a list of names

Parameters

array<string> $names

The names of the middleware or groups to fetch

Returns

array

Throws

RuntimeException
when a requested middleware does not exist.

hasMiddleware() public

hasMiddleware(string $name): bool

Check if the named middleware has been registered.

Parameters

string $name

The name of the middleware to check.

Returns

bool

hasMiddlewareGroup() public

hasMiddlewareGroup(string $name): bool

Check if the named middleware group has been created.

Parameters

string $name

The name of the middleware group to check.

Returns

bool

match() public

match(array $url, array $context): string

Reverse route or match a $url array with the connected routes.

Returns either the URL string generated by the route, or throws an exception on failure.

Parameters

array $url

The URL to match.

array $context

The request context to use. Contains _base, _port, _host, _scheme and params keys.

Returns

string

Throws

Cake\Routing\Exception\MissingRouteException
When no route could be matched.

middlewareExists() public

middlewareExists(string $name): bool

Check if the named middleware or middleware group has been registered.

Parameters

string $name

The name of the middleware to check.

Returns

bool

middlewareGroup() public

middlewareGroup(string $name, array<string> $middlewareNames): $this

Add middleware to a middleware group

Parameters

string $name

Name of the middleware group

array<string> $middlewareNames

Names of the middleware

Returns

$this

Throws

RuntimeException

named() public

named(): arrayCake\Routing\Route\Route>

Get the connected named routes.

Returns

arrayCake\Routing\Route\Route>

parse() public

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

Takes the URL string and iterates the routes until one is able to parse the route.

Parameters

string $url

URL to parse.

string $method optional

The HTTP method to use.

Returns

array

Throws

Cake\Routing\Exception\MissingRouteException
When a URL has no matching route.

parseRequest() public

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

Takes the ServerRequestInterface, iterates the routes until one is able to parse the route.

Parameters

Psr\Http\Message\ServerRequestInterface $request

The request to parse route data from.

Returns

array

Throws

Cake\Routing\Exception\MissingRouteException
When a URL has no matching route.

registerMiddleware() public

registerMiddleware(string $name, Psr\Http\Server\MiddlewareInterfaceClosure|string $middleware): $this

Register a middleware with the RouteCollection.

Once middleware has been registered, it can be applied to the current routing scope or any child scopes that share the same RouteCollection.

Parameters

string $name

The name of the middleware. Used when applying middleware to a scope.

Psr\Http\Server\MiddlewareInterfaceClosure|string $middleware

The middleware to register.

Returns

$this

Throws

RuntimeException

routes() public

routes(): arrayCake\Routing\Route\Route>

Get all the connected routes as a flat list.

Returns

arrayCake\Routing\Route\Route>

setExtensions() public

setExtensions(array<string> $extensions, bool $merge = true): $this

Set the extensions that the route collection can handle.

Parameters

array<string> $extensions

The list of extensions to set.

bool $merge optional

Whether to merge with or override existing extensions. Defaults to true.

Returns

$this

Property Detail

$_extensions protected

Route extensions

Type

array<string>

$_middleware protected

A map of middleware names and the related objects.

Type

array

$_middlewareGroups protected

A map of middleware group names and the related middleware names.

Type

array

$_named protected

The hash map of named routes that are in this collection.

Type

arrayCake\Routing\Route\Route>

$_paths protected

Routes indexed by path prefix.

Type

array<string, arrayCake\Routing\Route\Route>>

$_routeTable protected

The routes connected to this collection.

Type

array<string, arrayCake\Routing\Route\Route>>

© 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.4/class-Cake.Routing.RouteCollection.html