php框架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目录下。
php框架laravel原理,Laravel框架运行原理相关推荐
- java能够运行的原理_JAVA程序运行原理分析(一)
作为JAVA的开发人员,需要知道JAVA是如何运行的,这个需要好好思考下. (一)class文件内容 class文件包含JAVA程序执行的字节码,也就是说程序的执行是通过class里面的内容进行执行的 ...
- SpringBoot原理-SpringBoot核心运行原理
导语 Spring Boot最为核心的功能就是自动配置,所有功能的实现都是基于"约定优于配置"的原则,但是Spring Boot是如何实现自动配置的功能的,下面就通过源码学习S ...
- libuv 原理_Nodejs的运行原理-libuv篇
前言 这应该是Nodejs的运行原理的第7篇分享,这篇过后,短时间内不会再分享Nodejs的运行原理,会停更一段时间,PS:不是不更,而是会开挖新的坑,最近有在研究RPG Maker MV,区块链,云 ...
- python解析器原理_Python程序运行原理图文解析
本文研究的主要是Python程序运行原理,具体介绍如下. 编译型语言(C语言为例) 动态型语言 一个程序是如何运行起来的?比如下面的代码 #othermodule.py def add(a, b): ...
- java的运行原理_Java的运行原理(转载)
在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器.这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口.编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由 ...
- php 浏览网页的原理,PHP网页运行原理
1.用户在Web浏览器(客户端)中键入网址以访问网站.此连接还含有HTML表单的HTML页面. 2.浏览器连接到Apache服务器上,服务器中存放有组成该网站的HTML和PHP文件.Apache为客户 ...
- 【VLAN高级技术】--- MUX VLAN运行原理及实例配置讲解
文章目录 一.MUX VLAN产生原因 二.MUX VLAN运行原理 三.实例配置讲解(重点!!!) 四.MUX VLAN配置命令 一.MUX VLAN产生原因 个人认为MUX VLAN主要是为大中型 ...
- jsp是什么以及jsp运行原理
jsp是什么以及jsp运行原理 一.JSP的简单介绍 1. JSP(Java Server Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.JSP ...
- dedeCMS,标准的MVC框架运行原理和缓存
2019独角兽企业重金招聘Python工程师标准>>> 1.织梦的工作原理: a.模板引擎: b.内核文件的载入.读取: 运行原理:url->配置文件->公共 ...
- laravel $request 多维数组取值_Laravel 运行原理分析与源码分析,底层看这篇足矣
精选文章内容 一.运行原理概述 laravel的入口文件 index.php 1.引入自动加载 autoload.php 2.创建应用实例,并同时完成了: 基本绑定($this.容器类Containe ...
最新文章
- SAP PM 模块主要配置点
- OpenCV计算机视觉编程攻略之用色调、饱和度和亮度表示颜色
- 卷积神经网络(CNN)
- UVA1603Square Destroyer破坏正方形
- SAP UI5里一个包含众多操作的OData请求url实例
- 史上最全的前端开发面试题(含详细答案)
- linux输入不显示的处理 stty echo
- servlet的监听器、过滤器、拦截器的区别
- 互联网舆情数据监测预警分析系统软件不收费的有哪些详解
- CSS自定义字体,在线字体格式转换
- 吃着火锅唱着歌学会Docker
- 【PS技巧】如何拼图
- TidTcpClient总结
- Kent Beck确认参加敏捷中国大会2009,讲述其35年架构设计心得
- 嵌入式学习路径之单片机 | 月薪5个k到5个w的路径全在这了
- windows命令行工具
- 浅谈屏幕拍摄泄密跟踪的检测技术
- linux分区出现hfs,在Arch Linux上挂载HFS +分区
- 【每日一词】subservient
- Dell1464笔记本安装Win7旗舰版和XP经历