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 数组中添加如下内容:

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


三、总结

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

相关推荐
Hello.Reader32 分钟前
Rocket Fairings 实战把全局能力做成“结构化中间件”
中间件·rust·rocket
wxin_VXbishe1 小时前
C#(asp.net)学员竞赛信息管理系统-计算机毕业设计源码28790
java·vue.js·spring boot·spring·django·c#·php
Risehuxyc3 小时前
备份三个PHP程序
android·开发语言·php
lpfasd1233 小时前
物联网后端岗位java面试题
java·物联网·php
JSON_L3 小时前
Fastadmin中使用百度翻译API
php·fastadmin·百度翻译api
m0_748229994 小时前
PHP简易聊天室开发指南
开发语言·php
darkb1rd4 小时前
六、PHP错误处理与异常机制
安全·php·webshell
m0_748229994 小时前
PHP+Vue打造实时聊天室
开发语言·vue.js·php
天宁10 小时前
Workerman + ThinkPHP 8 结合使用
php·thinkphp
qq_3537375414 小时前
网站评分系统API
php