类 RouteCollection
包含路由集合。
提供一个接口用于添加/删除路由以及解析/生成包含的路由对应的URL。
属性摘要
-
$_extensions protected
list<string>
路由扩展
-
$_middleware protected
array
中间件名称和相关对象的映射。
-
$_middlewareGroups protected
array
中间件组名称和相关中间件名称的映射。
-
$_named protected
arrayCake\Routing\Route\Route>
此集合中命名路由的哈希映射。
-
$_paths protected
array<string, arrayCake\Routing\Route\Route>>
按路径前缀索引的路由。
-
$_routeTable protected
array<string, arrayCake\Routing\Route\Route>>
连接到此集合的路由。
-
$staticPaths protected
array<string, arrayCake\Routing\Route\Route>>
按静态路径索引的路由。
方法摘要
-
_getNames() protected
从 $url 中获取名称集。接受旧式数组 URL 和包含 '_name' 的新式 URL。
-
add() public
将路由添加到集合中。
-
getExtensions() public
获取可以处理的扩展。
-
getMiddleware() public
根据名称列表获取中间件数组。
-
hasMiddleware() public
检查命名中间件是否已注册。
-
hasMiddlewareGroup() public
检查命名中间件组是否已创建。
-
match() public
反转路由或使用连接的路由匹配 $url 数组。
-
middlewareExists() public
检查命名中间件或中间件组是否已注册。
-
middlewareGroup() public
将中间件添加到中间件组
-
named() public
获取连接的命名路由。
-
parseRequest() public
获取 ServerRequestInterface,迭代路由直到有一个能够解析路由。
-
registerMiddleware() public
在 RouteCollection 中注册中间件。
-
routes() public
获取所有连接的路由作为扁平列表。
-
setExtensions() public
设置路由集合可以处理的扩展。
方法详细说明
_getNames() ¶ protected
_getNames(array $url): list<string>
从 $url 中获取名称集。接受旧式数组 URL 和包含 '_name' 的新式 URL。
参数
-
array
$url 要匹配的 URL。
返回值
list<string>
add() ¶ public
add(Cake\Routing\Route\Route $route, array<string, mixed> $options = []): void
将路由添加到集合中。
参数
-
Cake\Routing\Route\Route
$route 要添加的路由对象。
-
array<string, mixed>
$options optional 路由的额外选项。主要是用于
_name
选项,该选项启用命名路由。
返回值
void
getMiddleware() ¶ public
getMiddleware(list<string> $names): array
根据名称列表获取中间件数组。
参数
-
list<string>
$names 要获取的中间件或组的名称。
返回值
array
抛出
InvalidArgumentException
当请求的中间件不存在时。
hasMiddleware() ¶ public
hasMiddleware(string $name): bool
检查命名中间件是否已注册。
参数
-
string
$name 要检查的中间件的名称。
返回值
bool
hasMiddlewareGroup() ¶ public
hasMiddlewareGroup(string $name): bool
检查命名中间件组是否已创建。
参数
-
string
$name 要检查的中间件组的名称。
返回值
bool
match() ¶ public
match(array $url, array $context): string
反转路由或使用连接的路由匹配 $url 数组。
返回由路由生成的 URL 字符串,或者在失败时抛出异常。
参数
-
array
$url 要匹配的 URL。
-
array
$context 要使用的请求上下文。包含 _base、_port、_host、_scheme 和 params 键。
返回值
string
抛出
Cake\Routing\Exception\MissingRouteException
当没有匹配的路由时。
middlewareExists() ¶ public
middlewareExists(string $name): bool
检查命名中间件或中间件组是否已注册。
参数
-
string
$name 要检查的中间件的名称。
返回值
bool
middlewareGroup() ¶ public
middlewareGroup(string $name, list<string> $middlewareNames): $this
将中间件添加到中间件组
参数
-
string
$name 中间件组的名称
-
list<string>
$middlewareNames 中间件的名称
返回值
$this
抛出
InvalidArgumentException
named() ¶ public
named(): arrayCake\Routing\Route\Route>
获取连接的命名路由。
返回值
arrayCake\Routing\Route\Route>
parseRequest() ¶ public
parseRequest(Psr\Http\Message\ServerRequestInterface $request): array
获取 ServerRequestInterface,迭代路由直到有一个能够解析路由。
参数
-
Psr\Http\Message\ServerRequestInterface
$request 要解析路由数据的请求。
返回值
array
抛出
Cake\Routing\Exception\MissingRouteException
当 URL 没有匹配的路由时。
registerMiddleware() ¶ public
registerMiddleware(string $name, Psr\Http\Server\MiddlewareInterfaceClosure|string $middleware): $this
在 RouteCollection 中注册中间件。
注册中间件后,可以将其应用于当前路由范围或共享相同 RouteCollection 的任何子范围。
参数
-
string
$name 中间件的名称。在将中间件应用于范围时使用。
-
Psr\Http\Server\MiddlewareInterfaceClosure|string
$middleware 要注册的中间件。
返回值
$this
抛出
RuntimeException
routes() ¶ public
routes(): arrayCake\Routing\Route\Route>
获取所有连接的路由作为扁平列表。
路由不会以添加它们的顺序返回。
返回值
arrayCake\Routing\Route\Route>
setExtensions() ¶ public
setExtensions(list<string> $extensions, bool $merge = true): $this
设置路由集合可以处理的扩展。
参数
-
list<string>
$extensions 要设置的扩展列表。
-
bool
$merge optional 是否与现有扩展合并或覆盖现有扩展。默认为
true
。
返回值
$this