laravel框架执行流程是什么?一文带你知道原理
发布时间:2022-04-07 16:24:04 所属栏目:语言 来源:互联网
导读:laravel框架是PHP常用的框架之一,对于刚接触laravel框架的朋友可能对于执行流程不是很了解,对此,这篇文章就给大家分享一下laravel框架执行流程及原理,感兴趣的朋友可以看一下。 1.index.php $app = require_once __DIR__./../bootstrap/app.php; $kernel
laravel框架是PHP常用的框架之一,对于刚接触laravel框架的朋友可能对于执行流程不是很了解,对此,这篇文章就给大家分享一下laravel框架执行流程及原理,感兴趣的朋友可以看一下。 1.index.php $app = require_once __DIR__.'/../bootstrap/app.php'; $kernel = $app->make(IlluminateContractsHttpKernel::class); $response = $kernel->handle( $request = IlluminateHttpRequest::capture() ); 2.进入app.php $app = new IlluminateFoundationApplication( $_ENV['APP_BASE_PATH'] ?? dirname(__DIR__) ); $app->singleton( IlluminateContractsHttpKernel::class, AppHttpKernel::class ); Application 类绑定基本类到容器 Kernel 类执行路由分发加载控制器等操作 3.进入 Kernel.php // 全局路由中间件,每次执行都会执行 protected $middleware = []; // 中间件路由分组, // 注册请求类到容器中 $this->app->instance('request', $request); // 从facade根实例 中删除共享实例 Facade::clearResolvedInstance('request'); // 启动引导类 protected $bootstrappers = []; 引导类都在这个数组中 $this->bootstrap(); // 通过管道模式执行最终结果,切面编程,aop return (new Pipeline($this->app)) // 设置通过管道发送的对象 ->send($request) // 设置管道阵列。 // shouldSkipMiddleware 判断是否应该跳过中间件,$this->make('middleware.disable') 设置为true // $this->bound('middleware.disable') 设置为true 应该可以跳过 所有中间件,不知道这么做的好处是什么? ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware) // 使用最终目标回调运行管道,最终需要运行的结果 ->then($this->dispatchToRouter()); (编辑:济南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |