请求入口

Laravel 应用的所有请求入口都是 public/index.php 文件,所有请求都会被 web 服务器(Apache/Nginx)导向这个文件

  • index.php 文件载入 Composer 生成的自动加载设置,然后从 bootstrap/app.php 脚本获取Laravel应用实例
  • Laravel 的第一个动作就是创建服务容器实例

    Http内核

    所有的Http请求都会被发送到HTTP内核(app/Http/Kernel.php文件),经过处理后再返回Http响应

  • HTTP内核定义了一系列所有请求在处理前需要经过的HTTP中间件,这些中间件处理HTTP会话的读写、判断应用是否处于维护模式、验证CSRF令牌等等

  • 内核启动过程中最重要的动作就是为应用载入服务提供者,这些服务提供者负责启动框架的所有各种各样的组件,比如数据库、队列、验证器,以及路由组件等

    分发请求

    一旦应用被启动并且所有的服务提供者被注册,请求将会被交给路由器进行分发,路由器将会分发请求到路由或控制器,同时运行所有路由指定的中间件。