laravel架构--生命周期

1.第一件事
laravel中的所有请求入口都是public/index.php文件,index.php会载入composer生成的自动加载设置,从bootstrap/app.php脚本获取laravel应用实例,之后laravel的第一个动作就是创建服务容器实例

2.HTTP/Console内核

请求->app/Http/kernel.php中,该类定义了bootstrappers数组(数组中的类在请求被执行之前要先运行),该数组中是一些关于
错误处理、日志、监测应用环境以及其他在请求被处理前需要被执行的任务类

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

HTTP内核的标志方法:handle。获取Request,处理数据,返回Response.

2.2.1 服务器提供者
内核启动最重要的动作之一:为应用载入服务提供者。
1.所有的服务提供者都被配置在config/app.php类的providers数组中。
2.所有提供者的register方法被调用-->完成注册-->boot()调用
3.服务提供者负责启动框架的所有各种的组件,如:数据库、队列、验证器、路由组件等

2.2.2 分发请求
应用被启动,服务提供者被注册,Request--->交给路由器--->分发到路由或控制器,同事运行所有路由指定的中间件

3.聚焦服务提供者

应用实例被创建--->服务提供者被注册--->请求交给启动后的应用进行处理
应用默认的服务提供者存放在app/Providers目录下
AppServiceProvider是空的(默认下),这里是添加自定义启动和服务容器绑定的最佳位置

你可能感兴趣的:(laravel架构--生命周期)