写在前面:

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

一、生命周期

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框架运行原理相关推荐

  1. java能够运行的原理_JAVA程序运行原理分析(一)

    作为JAVA的开发人员,需要知道JAVA是如何运行的,这个需要好好思考下. (一)class文件内容 class文件包含JAVA程序执行的字节码,也就是说程序的执行是通过class里面的内容进行执行的 ...

  2. SpringBoot原理-SpringBoot核心运行原理

    导语   Spring Boot最为核心的功能就是自动配置,所有功能的实现都是基于"约定优于配置"的原则,但是Spring Boot是如何实现自动配置的功能的,下面就通过源码学习S ...

  3. libuv 原理_Nodejs的运行原理-libuv篇

    前言 这应该是Nodejs的运行原理的第7篇分享,这篇过后,短时间内不会再分享Nodejs的运行原理,会停更一段时间,PS:不是不更,而是会开挖新的坑,最近有在研究RPG Maker MV,区块链,云 ...

  4. python解析器原理_Python程序运行原理图文解析

    本文研究的主要是Python程序运行原理,具体介绍如下. 编译型语言(C语言为例) 动态型语言 一个程序是如何运行起来的?比如下面的代码 #othermodule.py def add(a, b): ...

  5. java的运行原理_Java的运行原理(转载)

    在Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器.这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口.编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由 ...

  6. php 浏览网页的原理,PHP网页运行原理

    1.用户在Web浏览器(客户端)中键入网址以访问网站.此连接还含有HTML表单的HTML页面. 2.浏览器连接到Apache服务器上,服务器中存放有组成该网站的HTML和PHP文件.Apache为客户 ...

  7. 【VLAN高级技术】--- MUX VLAN运行原理及实例配置讲解

    文章目录 一.MUX VLAN产生原因 二.MUX VLAN运行原理 三.实例配置讲解(重点!!!) 四.MUX VLAN配置命令 一.MUX VLAN产生原因 个人认为MUX VLAN主要是为大中型 ...

  8. jsp是什么以及jsp运行原理

    jsp是什么以及jsp运行原理 一.JSP的简单介绍 1. JSP(Java Server Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.JSP ...

  9. dedeCMS,标准的MVC框架运行原理和缓存

    2019独角兽企业重金招聘Python工程师标准>>> 1.织梦的工作原理:   a.模板引擎:   b.内核文件的载入.读取:   运行原理:url->配置文件->公共 ...

  10. laravel $request 多维数组取值_Laravel 运行原理分析与源码分析,底层看这篇足矣

    精选文章内容 一.运行原理概述 laravel的入口文件 index.php 1.引入自动加载 autoload.php 2.创建应用实例,并同时完成了: 基本绑定($this.容器类Containe ...

最新文章

  1. SAP PM 模块主要配置点
  2. OpenCV计算机视觉编程攻略之用色调、饱和度和亮度表示颜色
  3. 卷积神经网络(CNN)
  4. UVA1603Square Destroyer破坏正方形
  5. SAP UI5里一个包含众多操作的OData请求url实例
  6. 史上最全的前端开发面试题(含详细答案)
  7. linux输入不显示的处理 stty echo
  8. servlet的监听器、过滤器、拦截器的区别
  9. 互联网舆情数据监测预警分析系统软件不收费的有哪些详解
  10. CSS自定义字体,在线字体格式转换
  11. 吃着火锅唱着歌学会Docker
  12. 【PS技巧】如何拼图
  13. TidTcpClient总结
  14. Kent Beck确认参加敏捷中国大会2009,讲述其35年架构设计心得
  15. 嵌入式学习路径之单片机 | 月薪5个k到5个w的路径全在这了
  16. windows命令行工具
  17. 浅谈屏幕拍摄泄密跟踪的检测技术
  18. linux分区出现hfs,在Arch Linux上挂载HFS +分区
  19. 【每日一词】subservient
  20. Dell1464笔记本安装Win7旗舰版和XP经历

热门文章

  1. 图解Winhex解析BMP文件数据实例
  2. linux下配置jdk8
  3. 商品SKU功能设计与优化
  4. 打印部复印社快印图文网站织梦模板
  5. 查看Linux centOS服务器系统的版本
  6. Android按钮设计,自定义按钮,圆形按钮,颜色
  7. python 在windows做个类似靠边停靠栏
  8. I2C协议及PCA9685控制芯片
  9. c语言china大写变小写,英语字母大写小写
  10. AWR (Automatic Workload Repository)- 自动工作负载信息库