[扩展推荐] 向 Laravel 中的中间件传递参数

Laravel

Has Parameters 是一个由 Tim MacDonald 开发的一个可以通过多种方式传递参数到中间件的 laravel 扩展。

下面是如何使用的例子 project’s readme:

以下是 Laravel 的 ThrottleRequests 中间件的一个简单例子:

class ThrottleRequests
{
    use HasParameters;

    public function handle($request, Closure $next, $maxAttempts = 60, $decayMinutes = 1, $prefix = '')
    {
        //
    }
}

然后你可以在路由中这样使用它:

Route::stuff()
    ->middleware([
        ThrottleRequests::with([
            'maxAttempts' => 120,
        ]),
    ]);

从例子中可以发现,HasParameters 提供了一个 with() 方法用来处理具有默值得参数。

Readme 文件中描述了使用该扩展的一些好处:

[Has Parameters] 提供 IDE 静态解析的支持, 可以使用参数名称来指定参数,允许设置默认参数, 并且可以添加一些验证, 很好的避免的忘记参数的尴尬。

更多知识

Tim 写了一篇文章 (Rethinking Laravel’s middleware argument API) 以帮助你了解该扩展的产生背景以及引导你如何使用该扩展。

你可以从安装文档中获取该扩展的详细信息,GIthub 源码地址: timacdonald/has-parameters.

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/has-parameters-...

译文地址:https://learnku.com/laravel/t/43923

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!