laravel 启动历程是什么
laravel是一款盛行的php开源框架,它的启动历程与其他框架类似,都需要履历一定的准备事情。本文将针对laravel的启动历程举行详细先容。
一、入口文件index.php
Laravel的入口文件是index.php,所有请求都将通过这个文件进入框架。在index.php中,我们可以看到以下代码段:
/* |-------------------------------------------------------------------------- | Turn On The Lights |-------------------------------------------------------------------------- | | We need to illuminate PHP development, so let us turn on the lights. | This bootstraps the framework and gets it ready for use, then it | will load up this application so that we can run it and send | the responses back to the browser and delight our users. | */ $app = require_once __DIR__.'/../bootstrap/app.php';
登录后复制
这段注释诠释了代码的作用,也可以看到require_once引入了bootstrap/app.php这个文件,也就是Laravel的启动文件。
二、启动文件bootstrap/app.php
在app.php文件中,我们可以主要看到三个要害类的实例化:$app、$kernel、$router。下面我们来逐一先容。
$app
$app是Illuminate\Foundation\Application类的实例,是整个框架的焦点,它治理了 Laravel 应用程序的容器并提供了许多强有力的功效,如路由、请求处置惩罚、事务、cookie、session、异常处置惩罚等等。接下来我们先看一下$app怎样初始化。
在$app的结构函数中,它首先继续了Illuminate\Container\Container类,天生了一个容器实例。在这个容器实例中我们可以绑定和注入我们需要的效劳。
接着,它会注册Laravel的所有焦点容器效劳,如路由、日志、视图等。
最后,它会加载Laravel设置文件,这些设置文件存放在config目录下,并将其放入$app实例的属性中。
$kernel
$kernel是Illuminate\Contracts\Http\Kernel接口的一个实例,它是Laravel的HTTP内核,认真处置惩罚所有的HTTP请求,是毗连请求和响应的桥梁。$kernel的主要作用是挪用请求的中心件,并将请求转达给路由器,最后将响应转达给客户端。
在$app实例化后,它会挪用$app->make()要领然后通过容器剖析获取$kernel的实例。在这个历程中,$app的容器会剖析$config[‘app’][‘middleware’]设置并注册中心件,然后将中心件存储到$kernel的实例中。
$router
$router是Illuminate\Routing\Router类的实例,它是Laravel的路由器,处置惩罚所有的路由剖析和分发。$router的主要作用是将请求和响应的操作举行匹配,为请求将被处置惩罚的路由存储在请求实例的属性中。
在$app实例化后,它会使用响应的设置天生路由器实例,并通过$app实例的instance要领注册到Laravel的容器中。
别的,还需要提到的是,$app会将请求实例及其它相关实例绑定到容器中,以供中心件、路由和控制器使用。容器绑定完成后,Laravel就完成了准备事情。
三、调理请求
在Laravel中,请求的调理流程如下:
1.从客户端提倡HTTP请求。
2.请求首先经由Laravel的public/index.php文件,并被转发到bootstrap/app.php文件中。
3.在bootstrap/app.php文件中,Laravel天生$app、$kernel和$router的实例,并将请求实例绑定到容器中。然后$app会挪用$kernel的handle要领处置惩罚请求。
4.在$kernel的handle要领中,Laravel通过容器剖析并依次挪用注册的中心件,然后将请求转发给路由器。
5.在路由器中,Laravel从请求中提取URI,然后将其与路由器实例中界说的所有路由举行匹配。若是找到匹配的路由,Laravel就将控制权转达给响应的控制器。
6.控制器是请求的主要处置惩罚程序,它会挪用营业逻辑代码处置惩罚请求,并最终将效果作为响应返回给客户端。
7.若是路由器没有找到匹配的路由,它会将请求转达给过失处置惩罚程序。
8.在过失处置惩罚程序中,Laravel会凭证过失的类型和设置,天生响应的响应返回给客户端。
以上就是一个Laravel请求的完整流程。通过深入相识Laravel的启动历程和请求调理流程,我们可以更好的明确它的内部架构和事情原理,从而更好地运用它处置惩罚GA黄金甲营业。
以上就是laravel 启动历程是什么的详细内容,更多请关注本网内其它相关文章!