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
超级会员免费看
订阅专栏 解锁全文
106

被折叠的 条评论
为什么被折叠?



