On this page
Class RouteCollection
Contains a collection of routes.
Provides an interface for adding/removing routes and parsing/generating URLs with the routes it contains.
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