20、Laravel 中的中间件、依赖注入与服务容器详解

Laravel 中的中间件、依赖注入与服务容器详解

1. 中间件概述

中间件通常被认为与应用程序逻辑是分离的,理论上它的构建方式应适用于任何应用程序,而不仅仅是当前正在开发的应用。中间件可以检查请求,对其进行装饰或拒绝。例如,在速率限制方面,中间件可以检查 IP 地址,统计其在最近一分钟内访问该资源的次数,如果超过阈值,则返回 429(请求过多)状态码。

由于中间件在应用程序输出响应时也能访问该响应,因此它也非常适合用于装饰响应。例如,Laravel 使用中间件在将响应发送给最终用户之前,将给定请求/响应周期中排队的所有 cookie 添加到响应中。另外,中间件还非常适合处理会话,因为 PHP 需要尽早打开会话并在很晚的时候关闭,而中间件可以很好地完成这个任务。

2. 创建自定义中间件

假设我们要创建一个中间件,它拒绝所有使用 DELETE HTTP 方法的请求,并为每个请求发送一个 cookie。可以使用 Artisan 命令来创建自定义中间件:

php artisan make:middleware BanDeleteMethod

打开 app/Http/Middleware/BanDeleteMethod.php 文件,默认内容如下:

class BanDeleteMethod
{
    public function handle($request, Closure $next)
    {
        return $next($re
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值