# HTTP 路由管理

HTTP 路由管理器用作管理炸毛框架内 @RequestMapping 和静态目录的路由操作的,可在运行过程中编写添加路由。

类定义:\ZM\Http\RouteManager

2.3.0 版本起可用。

注意

因为炸毛框架的路由实现是不基于跨进程的共享内存的,所以每次使用这里面的工具函数都需要单独在所有 Worker 进程中执行一次,最好的办法就是在启动框架时执行(@OnStart(-1) 即可,代表此注解事件将在每个工作进程中都被执行一次)。

# 方法

# importRouteByAnnotation()

通过注解类导入路由。(注:此方法一般为框架内部使用)

定义:importRouteByAnnotation(RequestMapping $vss, $method, $class, $methods_annotations)

参数 $vss:RequestMapping 注解类,类中定义 routerequest_method 即可。

参数 $method, $class:执行的目标注解事件函数位置,比如 $class = \Module\Example\Hello::class$method = 'hitokoto'

参数 $methods_annotations:需要绑定的 Controller 注解类数组,一般数组内建议只带有一个 Controller,如 [$controller]

# addStaticFileRoute()

添加一个单目录(此目录下无子目录,只有文件)并绑定为一个路由。

定义:addStaticFileRoute($route, $path)

参数 $route:绑定的目标路由,如 /images/

参数 $path:绑定的文件目录位置,如 /root/zhamao-framework-starter/zm_data/images/

/**
 * @OnStart(-1)
 */
public function onStart() {
    RouteManager::addStaticFileRoute("/images/", DataProvider::getDataFolder()."images/");
}
1
2
3
4
5
6

# 属性

# RouteManager::$routes

此为存放路由树的变量,请谨慎操作。

定义:\Symfony\Component\Routing\RouteCollection | null

炸毛框架使用了 Symfony 框架的 route 组件,有关详情请查阅 文档 (opens new window)