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
list<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.
-
$staticPaths protected
array<string, arrayCake\Routing\Route\Route>>
Routes indexed by static path.
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.
-
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(): list<string>
Get the extensions that can be handled.
Returns
list<string>
getMiddleware() ¶ public
getMiddleware(list<string> $names): array
Get an array of middleware given a list of names
Parameters
-
list<string>
$names The names of the middleware or groups to fetch
Returns
array
Throws
InvalidArgumentException
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, list<string> $middlewareNames): $this
Add middleware to a middleware group
Parameters
-
string
$name Name of the middleware group
-
list<string>
$middlewareNames Names of the middleware
Returns
$this
Throws
InvalidArgumentException
named() ¶ public
named(): arrayCake\Routing\Route\Route>
Get the connected named routes.
Returns
arrayCake\Routing\Route\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.
Routes will not be returned in the order they were added.
Returns
arrayCake\Routing\Route\Route>
setExtensions() ¶ public
setExtensions(list<string> $extensions, bool $merge = true): $this
Set the extensions that the route collection can handle.
Parameters
-
list<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
$_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>>
$staticPaths ¶ protected
Routes indexed by static path.
Type
array<string, arrayCake\Routing\Route\Route>>