PHP之从零开始学习laravel(一)

Laravel框架的生命周期

首先先说一说博主自己的坎坷精力吧,也为以后想要通过所谓的培训找到一个好工作的后辈们分享一定自己的经验吧!!!!
从去年在学校被某内的人员用“月薪8K起步,3年百万年薪”的口号所忽悠(其实也是因为自己在学校实在是没事儿干),来到某内培训所谓的长达5个月的“大数据”,实则java,于去年11月份正式开始找工作,期间经历了各种歧视,(因为博主只是一名三本的非计算机专业的渣渣),第一份工作天天加班不给工资,终于在各种坎坷之中,来到了现在的C轮融资某公司,转型做PHP开发(全员标配苹果电脑,这可是我梦寐以求的呀!!!), 也算是老天给了一条活路,体会到了社会的各种险恶的博主,终于下定决心好好学习,争取走上人生巅峰?,现在开始写博客,等几年以后回来看看自己写的这是什么玩意儿!!!!哈哈

现在正式开始话题,因为公司做开发使用laravel框架,所以需要自己先要去了解一下laravel

一、laravel是什么

简单来说,Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

二、laravel的生命周期

首先,框架的入口文件是public/index.php文件(作用有点类似于java中的main方法)

1、加载项目依赖

现代 PHP 依赖于 Composer 包管理器,入口文件通过引入由 Composer 包管理器自动生成的类加载程序,可以轻松注册并加载项目所依赖的第三方组件库。
所有组件的加载工作,仅需一行代码即可完成:
在这里插入图片描述

2、创建服务容器

是由bootstrap/app.php文件里面的引导程序完成的,包含创建服务容器完成内核的绑定
下面是 bootstrap/app.php 的代码,包含两个主要部分「创建应用实例」和「绑定内核至 APP 服务容器」:

在这里插入图片描述

1⃣️创建服务容器(应用实例)也就是实例化Illuminate\Foundation\Application这个服务容器,后续我们称其为APP 容器。
2⃣️
内核的绑定
:Laravel 会依据 HTTP 请求的运行环境的不同,将请求发送至相应的内核: HTTP 内核Console 内核(在这里我们只讨论HTTP内核)无论 HTTP 内核还是 Console 内核,它们的作用都是是接收一个 HTTP 请求,随后返回一个响应,就是这么简单!!!HTTP内核继承自Illuminate\Foundation\Http\Kernel类。这个类定义了一个bootstrapppers引导程序数组,该类在请求执行之前运行,该数组中包含了环境检测、配置加载、异常处理、Facades 注册、服务提供者注册、启动服务这六个引导程序。

三、接收请求并且响应

有关代码如下:
在这里插入图片描述
将上面的代码简单的分析一下:首先将绑定在app容器上的http内核进行make()也就是解析内核或者是实例化内核,这一步是用来利用内核内部的中间组件来过滤请求的目的(类似于Spring容器里面的过滤器的作用)。然后才是重头戏,http请求的处理:请求实例 Illuminate\Http\Request 的 capture() 方法内部通过 Symfony 实例创建一个 Laravel 请求实例(我们在这一步就已经可以得到了HTTP请求里面的信息),处理http是在handle()方法之中(接收一个http请求,生成一个http响应)

最后,发送响应值给客户端 $response->send(),清理项目中的中间件,这样就完成了一次从响应请求到返回一个响应的过程,也就是完成了laravel框架的的一次“任务”。

感谢https://learnku.com/articles/10421/depth-mining-of-laravel-life-cycle这位大佬的底层源码剖析,有注重源码的可以看看这一篇

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值