# 4.7 路由

任何一个MVC框架都有路由的功能,是解析请求的URI,将请求分发给相应的控制器和方法,然后进行逻辑处理。

## 内置路由

MSF框架默认路由器为`\PG\MSF\Route\NormalRoute`,也可以实现`\PG\MSF\Route\IRoute`接口类,自定义路由。

## 路由规则

内置路由支持无限层级的路由,即Controller可以无限嵌套目录,如:

http://127.0.0.1:8000/Backend/Config/Page

执行的方法为:\App\Controllers\Backend\Config::actionPage()

http://127.0.0.1:8000/a/b/c/d/f

如F为控制器名,执行的方法为:\App\Controllers\A\B\C\D\F::actionIndex()

如F为方法名,执行的方法为:\App\Controllers\A\B\C\D::actionF()

## 路由缓存

默认开启了路由缓存，也即解析一次请求之后，后续请求会使用路由缓存来将请求分发到相应的控制器动作。如果由于某些需求不能缓存路由，需要用户自行继承`PG\MSF\Route\NormalRoute`将属性`enableCache`设置为false。

# links
  * [目录](../README.md)
  * 上一节: [配置](4.6-配置.md)
  * 下一节: [小结](4.8-小结.md)
