## 请求流程
在应用初始化结束之后,框架运行所具备的基本功能就加载结束了。然后就应该是处理用户请求了。首先我们应该看的就是流程。
```
if (is_file($this->app->getBasePath() . 'middleware.php')) {
$this->app->middleware->import(include $this->app->getBasePath() . 'middleware.php');
}
if ($this->multi) {
$this->parseMultiApp();
}
$this->app->event->withEvent($this->app->config->get('app.with_event', true));
$this->app->event->trigger('HttpRun');
$withRoute = $this->app->config->get('app.with_route', true) ? function () {
$this->loadRoutes();
} : null;
return $this->app->route->dispatch($request, $withRoute);
```
- 加载全局中间件 app/middleware.php, 默认这些都是关闭的
- 多应用处理
- 设置事件监听并且监听 httpRun 事件
- 加载路由,有一个需要注意的就是框架支持注解路由。默认关闭
- 分发请求
上面便是整个请求的过程。下面会具体分析中间件在其中扮演的角色,有什么样的功能,该怎么使用它。