[ Laravel从入门到精通 ] 请求与响应系列 —— 异常处理篇之底层源码剖析

前面我们介绍 Laravel 中 HTTP 请求生命周期和中间件底层处理逻辑的时候,都涉及到了 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php 这个文件,对应的 Illuminate\Foundation\Http\Kernel 类是我们 Laravel 应用 HTTP Kernel 类 App\Htt...

[ Laravel 从入门到精通 ] 请求与响应系列 —— Laravel 路由匹配和执行底层源码剖析

入口方法 通过上一篇教程,我们知道路由匹配和处理逻辑入口位于 vendor/laravel/framework/src/Illuminate/Routing/Router.php 的 dispatch 方法: public function dispatch(Request $request) { $this->currentRequest = $request; ret...

[ Laravel 从入门到精通 ] 请求与响应系列 —— Laravel 中间件底层源码剖析

前面学院君已经给大家介绍了 Laravel 一次请求生命周期底层运行逻辑,并分别就请求类和响应类的底层实现和基本使用给大家做了详细的演示,接下来,我们还是围绕请求生命周期中的组件展看,分两篇教程分别介绍中间件的底层原理和路由匹配的底层原理。首先我们来看中间件。 什么是中间件 中间件并不是 Laravel 框架所独有的概念,而是一种被广泛应用的架构模式,尤其是在 Java 中。 在 Lar...

[ Laravel 从入门到精通 ] 请求与响应系列 —— Laravel 响应类 Response 剖析

和 Laravel 请求对象类 Request 类似,代码底层有一个 Response 类用于表示发送给终端用户的应用响应,其中包含响应头、Cookie、响应内容、以及其它发送给终端用户浏览器用于渲染响应页面的东西。 和 Request 类似,Response 的完整类名是 Illuminate\Http\Response,继承自 Symfony 的 HTTP 响应基类 Symfony\...

[ Laravel 从入门到精通 ] 请求与响应系列 —— Laravel 请求类 Request 剖析

我们已经知道,在 Laravel 框架中,需要通过 Request 对象来获取用户请求信息,该对象引用的完整类名是 Illuminate\Http\Request,而该请求类又继承自 Symfony 的 Symfony\Component\HttpFoundation\Request,所以在介绍 Laravel 的 Request 之前,需要先对 Symfony 底层的 Request ...

解决 Laravel JWT 多表认证时获取不到当前认证用户的问题

问题描述 最近在做一个项目,需要多表认证,分别为admin和user表,我采用的JWT认证方式,但今天遇到了一个问题:使用Auth::user()返回null,也就是说无法获得当前认证的用户。 网上搜索后,并没有找到直接的解决方案,然后经过几次尝试居然误打误撞地解决了,所以特地记录下来,希望遇到同样问题的人不要再在这问题上耗费太多时间。 注意:这里并不介绍JWT的工作原理和配置,如果想理...

Lumen 使用 throttle 限制接口访问频率

前言 今天碰到过这样一个情况,我需要限制用户请求某个API接口的频率,比如登录、反馈等提交操作,经过一番搜索+折腾,总算是实现了。 在Laravel 5.2的新特性中增加了一个throttle中间件,通过它可以在路由层限制API访问的频率。例如限制频率为1分钟50次,如果一分钟内超过了这个限制,它就会响应:429: Too Many Attempts。 但我在项目中使用的是Lumen...

[ Laravel 从入门到精通 ] 请求与响应系列 —— Laravel 底层是如何处理 HTTP 请求的

总体流程 Web 服务器对 HTTP 请求的处理流程大体上都是这样的:在某个端口监听请求,请求进入后运行程序,然后将程序运行结果以响应的形式发送出去。 基于 Laravel 框架构建的 Web 应用处理 HTTP 请求的流程也是如此。所有 HTTP 请求都会被转发到单入口文件 public/index.php,处理 HTTP 请求的核心代码如下(忽略 HTTP 请求处理之外的代码): ...

基于 Swoole 构建高性能 Laravel 应用系列 —— 基于 Swoole 实现高性能 HTTP 服务器

在上篇教程中,学院君给大家介绍了 Swoole 的基本概念和安装配置,从这篇教程开始,学院君将结合 Laravel 框架在应用中通过 Swoole 实现高性能 HTTP 服务器、WebSocket 服务器、协程、异步事件监听、异步任务队列、毫秒级任务调度、MySQL 线程池等高级特性,从而提高 Laravel 应用整体性能。 当然,这些特性都是 Swoole 底层所支持的,并且已经有第三...