美文网首页
Laravel的生命周期

Laravel的生命周期

作者: 如梦又似幻 | 来源:发表于2020-01-11 16:16 被阅读0次
    首先:

    Laravel 应用的所有请求入口都是 public/index.php 文件。而所有的请求都是经由你的 Web 服务器
    (Apache/Nginx)通过配置引导到这个文件。 index.php 文件代码并不多,但是,这里是加载框架其它
    部分的起点。
    index.php 文件加载 Composer 生成的自动加载设置,然后从 bootstrap/app.php 脚本中检索
    Laravel 应用程序的实例。 Laravel 本身采取的第一个动作是创建一个应用程序 / 服务容器。

    HTTP / Console 内核

    接下来,根据进入应用程序的请求类型来讲传入的请求发送到HTTP内核或控制台内核。而这两个内核是用来作为所有请求都要通过的中心位置。现在我们先看看位于 app/Http/Kernel.php 中的HTTP 内核。

    HTTP 内核继承了 Illuminate\Foundation\Http\Kernel类,该类定义了一个 bootstrappers 数组。这个数组中的类在请求被执行前运行,这些 bootstrappers 配置了错误处理、日志、检测应用环境以及其他在请求被处理前需要执行的任务。

    HTTP 内核还定义了所有请求被应用程序处理之前必须经过的HTTP中间件,这些中间件处理HTTP回话的读写、判断应用是否处于维护模式,验证CSRF令牌 等等。

    HTTP 内核的 handle 方法签名相当简单:获取一个 Request,返回一个 Response。可以吧该内核想象成一个代表整个应用的黑盒子,输入 HTTP 请求,返回 HTTP 响应。

    服务提供者

    内核启动操作中最重要的便是应用的 服务提供者 了。所有应用下的服务提供者均配置到了 config/app.php 配置文件中的providers 数组中。首先,所有服务提供者的 register 方法会被调用,然后一旦所有的服务提供者均注册后,boot 方法才会被调用。
    服务提供者给框架开启了多种多样的组件,像数据库、队列、验证器,以及路由组件。只要被启动服务提供者就可以支配框架的所有功能,所以服务提供者也是 Laravel 整个引导周期中最重要的组成部分。

    请求调度

    一旦启动且所有的服务提供者被注册,Request 会被递送给路由。路由将会调度请求,交给绑定的路由或控制器。当然也包括路由绑定的中间件。

    聚焦服务提供者

    服务提供者是 Laravel 真正意义的生命周期中的关键。应用实例一旦创建,服务提供者就被注册,然后请求被启动的应用接管。

    牢牢掌握服务提供者的构建和其对 Laravel 应用处理机制的原理是非常有价值的。 默认的服务提供者会存放在 app/Providers 下面。
    AppServiceProvider 是空白的。这个提供者是一个不错的位置,用于你添加应用自身的引导处理和服务容器绑定。当然,在大型项目中,你可能希望创建数个粒度更加精细的服务提供者。

    相关文章

      网友评论

          本文标题:Laravel的生命周期

          本文链接:https://www.haomeiwen.com/subject/gifbactx.html