Laravel 6 - 第十一章 中间件

文章目录

Laravel 6 - 第一章 简介
Laravel 6 - 第二章 项目搭建
Laravel 6 - 第三章 文件夹结构
Laravel 6 - 第四章 生命周期
Laravel 6 - 第五章 控制反转和依赖注入
Laravel 6 - 第六章 服务容器
Laravel 6 - 第七章 服务提供者
Laravel 6 - 第八章 门面
Laravel 6 - 第九章 契约
Laravel 6 - 第十章 路由
Laravel 6 - 第十一章 中间件
Laravel 6 - 第十二章 控制器
Laravel 6 - 第十三章 请求
Laravel 6 - 第十四章 响应
Laravel 6 - 第十五章 验证器
Laravel 6 - 第十六章 Artisan命令
Laravel 6 - 第十七章 配置数据库
Laravel 6 - 第十八章 模型


目录


一、中间件(middleware)

中间件(Middleware)提供了一种机制,用于过滤进入应用程序的 HTTP 请求,可以执行一些常见的任务,如:身份验证、日志记录、CORS(跨源资源共享)处理等。

二、使用步骤

1.创建中间件

使用 artisan cli 创建一个新的中间件(CheckUsernameMiddleware),如下:

shell 复制代码
$ php artisan make:middleware CheckUsernameMiddleware

如上命令会在 app/Http/Middleware 下新建 中间件(CheckUsernameMiddleware)类。

2.编写中间件

1中例子,在 中间件(CheckUsernameMiddleware)handle 方法中编写处理逻辑,如下:

如上,前置逻辑是在应用处理请求之前执行,后置逻辑是在应用处理请求之后执行。

3.注册中间件

1中的例子,打开 app/Http/Kernel.php 文件,找到 $routeMiddleware 数组,将中间件别名(checkUsername)映射到 CheckUsernameMiddleware。如下:

4.使用中间件

1、路由中间件

3中例子,在路由文件(如:routes/api.php)添加如下内容:

表示只会在 /show 上运行中间件(CheckUsernameMiddleware),其他同理,使用方法可参考Laravel 6 - 第十章 路由路由组的例子。

2、全局中间件

1中例子,在 app/Http/Kernel.php 文件中找到 $middleware 数组并添加中间件(CheckUsernameMiddleware),如下:

表示在应用程序的所有请求中都会运行中间件(CheckUsernameMiddleware),且无需在路由文件(如:routes/api.php)指定。

5.中间件组

以项目默认中间件组为例,如果想把多个中间件打包成一个组,从而方便使用,则可在app/Http/Kernel.php 文件中的 $middlewareGroups 数组中添加如下内容:

在路由中使用,如下:

6.排序

以项目默认中间件组为例,如果想让中间件以特定的顺序执行,则可在app/Http/Kernel.php 文件中的 $middlewarePriority 数组中添加如下内容:

如上会将强制非全局中间件始终保持给定的顺序。


三、总结

使用中间件可以轻松地过滤、修改进入应用程序的请求。

相关推荐
九分源码6 小时前
基于PHP+MySQL组合开发开源问答网站平台源码系统 源码开源可二次开发 含完整的搭建指南
mysql·开源·php
一只程序汪8 小时前
【如何实现分布式压测中间件】
分布式·中间件
William一直在路上9 小时前
主流分布式中间件及其选型
分布式·中间件
pltrue11 小时前
Go 重构案例分享:订单创建逻辑重构
go·php
RainSerein11 小时前
Laravel8中调取腾讯云文字识别OCR
ocr·php·腾讯云·laravel
杰哥技术分享13 小时前
PHP Yii2 安装SQL Server扩展-MAC M4 Pro芯片
开发语言·php
wuk99810 天前
深入理解PHP中的生成器(Generators)
开发语言·php
A5资源网10 天前
为WordPress 网站创建一个纯文本网站地图(Sitemap)
前端·数据仓库·html·php
PHP武器库10 天前
[Hestia]开源网络服务器控制面板,快速、可靠、开源
运维·服务器·网络·开源·php
listhi52010 天前
深入浅出Node.js中间件机制
中间件·node.js