欢迎光临
我们一直在努力

Laravel框架运行原理

下文介绍Laravel框架运行原理,希望对大家有帮助。

使用任何框架,如果理解该框架原理,应用起来会更加得心应手。

一、生命周期

1. 入口文件:

Laravel框架所有请求入口统一进入/public/index.php文件,请求通过Ngxin/Apache指向该文件。

index.php文件是加载其他文件入口,本身代码不多。index.php文件载入通过Composer生产的自动加载配置,然后从bootstrap/app.php获取应用实例,创建服务容器。

2.Http/Console内核

接上面,请求被发送到HTTP内核或Console内核,取决于应用请求类型(会在下篇文章说明)。这两个内核为所有请求必须经过的中央处理器,

下面介绍App\Http\Kernel的HTTP内核:

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

HTTP内核还定义请求处理前需要经过HTTP中间件,该中间件处理HTTP会话的读写、判断应用是否处于维护模式,验证CSRF令牌(防止CSRF攻击)等。

HTTP内核标签方法handle:获取一个Request,返回一个Response,输入HTTP请求,返回HTTP响应。

3.服务提供者

内核启动会为应用载入服务提供者,服务提供者都被配置在config/app.php配置文件的providers数组中。服务提供者被注册后,boot方法被调用。

服务提供者负责启动框架的所有组件,如数据库、队列、验证器、路由组件等。因他们启动并配置框架提供的所有特性,服务提供者是整个Laravel启动过程中最重要部分。

「延迟」提供器:即providers数组中较多服务都是提供的实际服务需要才会加载。

4. 分发请求

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

二、服务提供者

服务提供是启动Laravel关键部分,应用实例被创建,服务提供被注册,请求被启动后的应用进行处理。

默认存放在app/Providers目录下。

《PHP7进阶到架构-Laravel/Redis/Swoole/高并发分布式【六星教育】》从TP5/Laravel框架内核原理,到PHP性能优化,到swoole网络通信引擎,微服务架构,大型商业企业项目实战,从人工智能技术到高并发分布式架构,跟着老师学习解决高薪就业和创业的问题。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。