Properties

$allRoutes

$allRoutes : \Symfony\Component\Routing\RouteCollection

Type

\Symfony\Component\Routing\RouteCollection

$controllerNamespace

$controllerNamespace : string

Type

string

$container

$container : \Psr\Container\ContainerInterface

Type

\Psr\Container\ContainerInterface

Methods

__construct()

__construct(\Symfony\Component\Routing\RouteCollection  $allRoutes, \Psr\Container\ContainerInterface  $container, string  $controllerNamespace = 'App\Controllers') : mixed

Parameters

\Symfony\Component\Routing\RouteCollection $allRoutes
\Psr\Container\ContainerInterface $container
string $controllerNamespace

Returns

mixed —

match()

match(\Symfony\Component\HttpFoundation\Request  $request) : ?array

Parameters

\Symfony\Component\HttpFoundation\Request $request

Returns

?array —

matchManualAndAnnotationRoutes()

matchManualAndAnnotationRoutes(string  $path, \Symfony\Component\Routing\RequestContext  $context, \Symfony\Component\HttpFoundation\Request  $request) : ?array

Parameters

string $path
\Symfony\Component\Routing\RequestContext $context
\Symfony\Component\HttpFoundation\Request $request

Returns

?array —

matchAutoRoute()

matchAutoRoute(string  $path, \Symfony\Component\HttpFoundation\Request  $request) : ?array

Parameters

string $path
\Symfony\Component\HttpFoundation\Request $request

Returns

?array —

finalizeAutoRoute()

finalizeAutoRoute(\Symfony\Component\HttpFoundation\Request  $request, string  $controller, string  $method, array  $params) : array

🔥 核心修复:在自动路由确认后,现场扫描注解

Parameters

\Symfony\Component\HttpFoundation\Request $request
string $controller
string $method
array $params

Returns

array —

scanForMiddlewareAndAttributes()

scanForMiddlewareAndAttributes(string  $controller, string  $method) : array

🔥 新增方法:反射扫描控制器和方法上的注解 用于在“自动路由”模式下动态提取 #[Auth] 等信息

Parameters

string $controller
string $method

Returns

array —

buildControllerClassName()

buildControllerClassName(array  $segments) : string

构建控制器完整类名(支持多级命名空间) 例:[api, v2, user] → App\Controllers\Api\V2\UserController.

Parameters

array $segments

Returns

string —

matchActionAndParams()

matchActionAndParams(string  $controllerClass, array  $segments, string  $requestMethod) : null|array

匹配动作名和参数(自动路由核心).

Parameters

string $controllerClass
array $segments
string $requestMethod

Returns

null|array —

[method, params]

buildActionName()

buildActionName(array  $segments) : string

构建动作名(多段转为驼峰式).

Parameters

array $segments

Returns

string —

extractParamsFromSegments()

extractParamsFromSegments(array  $segments) : array

从路径段提取参数.

Parameters

array $segments

Returns

array —

getRestDefaultAction()

getRestDefaultAction(string  $method) : string

根据HTTP方法获取RESTful默认动作.

Parameters

string $method

Returns

string —

preprocessRequest()

preprocessRequest(\Symfony\Component\HttpFoundation\Request  $request) : void

请求预处理:中间件+URL后缀处理.

Parameters

\Symfony\Component\HttpFoundation\Request $request

applyMethodOverrideMiddleware()

applyMethodOverrideMiddleware(\Symfony\Component\HttpFoundation\Request  $request) : void

应用MethodOverride中间件.

Parameters

\Symfony\Component\HttpFoundation\Request $request

removeHtmlSuffix()

removeHtmlSuffix(\Symfony\Component\HttpFoundation\Request  $request) : void

去除URL的.html后缀

Parameters

\Symfony\Component\HttpFoundation\Request $request