细说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的详细内容,更多请关注本网内其它相关文章!