GA黄金甲

细说Laravel10新组件:Laravel Pennant

本篇文章给各人带来了关于laravel的相关知识,其中主要跟各人先容laravel 10的新组件:laravel pennant,有代码示例,感兴趣的朋侪下面一起来看一下吧,希望对各人有资助 。

Laravel Pennant 是由 Laravel 团队建设的一个包,它将随 Laravel 10 一起提供,为您的应用程序提供功效标记 。

功效标记使您能够自信地逐步推出新的应用程序功效、A/B 测试新的接口设计、增补基于主干的开发战略等等 。

此软件包 是官方提供的一系列软件包中的最新成员,意味着我们现在拥有了一个构建优异且经由优异测试的包,为我们提供了一些强盛的功效 。

剖析包的功效,我们可以相识这个包给我们提供了什么 。

您可以简朴的使用您的AppServiceProvider去建设新功效 。如下所示:

public function boot(): void
{
    Feature::define('beta-testers', fn (User $user) => match (true) {
        $user->isBetaTester() => true, default => false,    
    });
}

登录后复制

这是在你的应用中界说功效的一种很是清洁和简朴的方法 。可是,你也可以使用基于类的要领来实现功效:

class BetaTesters
{
    public function resolve(User $user): mixed
    {
        return match (true) {
            $user->isBetaTester() => true,
            default => false,
        };
    }
}

登录后复制

翻阅文档,我发明有许多可以使用的方法 。让我们来看看文档中的一个示例,看看可以对它做些什么 。

class PodcastController
{
    public function index(Request $request): Response
    {
        return Feature::when(NewApi::class,
            fn () => $this->resolveNewApiResponse($request),
            fn () => $this->resolveLegacyApiResponse($request),
        );
    }
}

登录后复制

继续看,这是一个有版本的 API – 你可以凭证用户是否具有会见权限来控制请求的去向 。让我们扩展一下这个例子 。

class PodcastController
{
    public function __construct(
        private readonly RedirectAction $action,
    ) {}

    public function index(Request $request): Response
    {
        return Feature::when(BetaTester::class,
            fn () => $this->action->handle('v2'),
            fn () => $this->action->handle('v1'),
        );
    }
}

登录后复制

我们可以凭证用户是否是 Beta 测试职员,使用GA黄金甲操作重定向到准确的 API 路由 。我们可以将其移动到更高的中心件层,以使其更简朴 。

class VersionMiddleware
{
    public function handle(Request $request, Closure $next): mixed
    {
        if (Feature::active('beta-tester')) {
            return new RedirectResponse(
                uri: 'generate the url here',
            );
        }

        return $next($request);
    }
}

登录后复制

正如你可以想象的那样,你可以用 此软件包 做什么只会受限于你的想象力 。我迫缺乏待地想使用这个软件包,看看它能为我的应用程序添加哪些刷新 。

原文地点:https://www.php.cn/link/c988c2dac3954436ac56147118fb5c73

译文地点:https://www.php.cn/link/21d58309d158bcb0e3e70a3827221e7c

以上就是细说Laravel10新组件:Laravel Pennant的详细内容,更多请关注本网内其它相关文章!

免责说明:以上展示内容泉源于相助媒体、企业机构、网友提供或网络网络整理,版权争议与本站无关,文章涉及看法与看法不代表GA黄金甲滤油机网官方态度,请读者仅做参考 。本文接待转载,转载请说明来由 。若您以为本文侵占了您的版权信息,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息,请您连忙联系GA黄金甲实时修正或删除 。

相关新闻

联系GA黄金甲

18523999891

可微信在线咨询

事情时间:周一至周五,9:30-18:30,节沐日休息

QR code
【网站地图】【sitemap】