Constants

CONTROLLER_DIR

CONTROLLER_DIR = BASE_PATH . '/app/Controllers'

CONTROLLER_NAMESPACE

CONTROLLER_NAMESPACE = 'App\\Controllers'

ROUTE_CACHE_FILE

ROUTE_CACHE_FILE = BASE_PATH . '/storage/cache/routes.php'

DIR_PERMISSION

DIR_PERMISSION = 0755

Properties

$instance

$instance : ?\Framework\Core\Framework

Type

Framework

$request

$request : ?\Symfony\Component\HttpFoundation\Request

Type

Request

$container

$container : \Symfony\Component\DependencyInjection\ContainerInterface

Type

\Symfony\Component\DependencyInjection\ContainerInterface

$router

$router : \Framework\Core\Router

Type

Router

$middlewareDispatcher

$middlewareDispatcher : \Framework\Middleware\MiddlewareDispatcher

Type

MiddlewareDispatcher

$kernel

$kernel : \Framework\Core\Kernel

Type

Kernel

Methods

__wakeup()

__wakeup() : void

防止反序列化单例实例(修正为 public 可见性).

Throws

\RuntimeException

getInstance()

getInstance() : \Framework\Core\Framework

单例模式:获取实例.

Returns

\Framework\Core\Framework —

run()

run() : void

FPM入口:完整调度流程.

handleRequest()

handleRequest(\Symfony\Component\HttpFoundation\Request  $request) : \Symfony\Component\HttpFoundation\Response

Parameters

\Symfony\Component\HttpFoundation\Request $request

Returns

\Symfony\Component\HttpFoundation\Response —

getContainer()

getContainer() : \Symfony\Component\DependencyInjection\ContainerInterface

获取容器(对外提供接口).

Returns

\Symfony\Component\DependencyInjection\ContainerInterface —

__construct()

__construct() : mixed

单例模式:禁止外部实例化.

Returns

mixed —

__clone()

__clone() : void

防止克隆单例实例.

dispatch()

dispatch(\Symfony\Component\HttpFoundation\Request  $request) : \Symfony\Component\HttpFoundation\Response

核心统一调度入口(FPM/Workerman/Swoole 都走这里).

Parameters

\Symfony\Component\HttpFoundation\Request $request

Returns

\Symfony\Component\HttpFoundation\Response —

logError()

logError(string  $message) : void

记录简单错误到 storage/logs/error.log(用于在容器日志不可用时回退).

Parameters

string $message

initializeBasePath()

initializeBasePath() : void

初始化 BASE_PATH.

createRequiredDirs()

createRequiredDirs() : void

创建必需目录(支持权限配置).

initializeConfigAndContainer()

initializeConfigAndContainer() : void

初始化配置和容器(核心流程).

initializeDependencies()

initializeDependencies() : void

初始化路由和中间件.

loadAllRoutes()

loadAllRoutes() : \Symfony\Component\Routing\RouteCollection

加载所有路由(手动+注解,支持环境区分的缓存).

Returns

\Symfony\Component\Routing\RouteCollection —

cacheRoutes()

cacheRoutes(\Symfony\Component\Routing\RouteCollection  $routes) : void

缓存路由集合(添加序列化错误处理).

Parameters

\Symfony\Component\Routing\RouteCollection $routes

callController()

callController(array<string,mixed>  $route) : \Symfony\Component\HttpFoundation\Response

调用控制器方法(优化参数解析和返回值处理).

Parameters

array $route

Returns

\Symfony\Component\HttpFoundation\Response —

processRequestParameters()

processRequestParameters(class-string  $controllerClass, string  $method, array<string,mixed>  $routeParams) : void

处理请求参数类型转换.

Parameters

class-string $controllerClass
string $method
array $routeParams

castValueToType()

castValueToType(mixed  $value, string  $type) : mixed

类型转换工具方法.

Parameters

mixed $value
string $type

Returns

mixed —

normalizeResponse()

normalizeResponse(mixed  $response) : \Symfony\Component\HttpFoundation\Response

标准化响应格式.

Parameters

mixed $response

Returns

\Symfony\Component\HttpFoundation\Response —

handleNotFound()

handleNotFound() : \Symfony\Component\HttpFoundation\Response

处理 404 错误.

Returns

\Symfony\Component\HttpFoundation\Response —

handleException()

handleException(\Throwable  $e) : \Symfony\Component\HttpFoundation\Response

处理异常.

Parameters

\Throwable $e

Returns

\Symfony\Component\HttpFoundation\Response —

isEasterEggRoute()

isEasterEggRoute(array<string,mixed>  $route) : bool

彩蛋路由判断.

Parameters

array $route

Returns

bool —

handleEasterEgg()

handleEasterEgg(array<string,mixed>  $route) : \Symfony\Component\HttpFoundation\Response

处理彩蛋响应.

Parameters

array $route

Returns

\Symfony\Component\HttpFoundation\Response —

logRequestAndResponse()

logRequestAndResponse(\Symfony\Component\HttpFoundation\Request  $request, \Symfony\Component\HttpFoundation\Response  $response, float  $startTime) : void

记录请求和响应日志.

Parameters

\Symfony\Component\HttpFoundation\Request $request
\Symfony\Component\HttpFoundation\Response $response
float $startTime