## 请求流程 在应用初始化结束之后,框架运行所具备的基本功能就加载结束了。然后就应该是处理用户请求了。首先我们应该看的就是流程。 ``` 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 事件 - 加载路由,有一个需要注意的就是框架支持注解路由。默认关闭 - 分发请求 上面便是整个请求的过程。下面会具体分析中间件在其中扮演的角色,有什么样的功能,该怎么使用它。