广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >Laravel 10 的新组件:Laravel Pennant
  • 56
分享到

Laravel 10 的新组件:Laravel Pennant

LaravelPennant 2023-03-06 18:03:44 56人浏览 佚名
摘要

Laravel Pennant 是由 Laravel 团队创建的一个包,它将随 Laravel 10 一起提供,为您的应用程序提供功能标志。功能标志使您能够自信地逐步推出新的应用程序功能、A/B 测试新的接口设计、补充基于主干的开发策略等等

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 测试人员,使用我们的操作重定向到正确的 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);
    }
}

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

--结束END--

本文标题: Laravel 10 的新组件:Laravel Pennant

本文链接: https://www.lsjlt.com/news/198750.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Laravel 10 的新组件:Laravel Pennant
    Laravel Pennant 是由 Laravel 团队创建的一个包,它将随 Laravel 10 一起提供,为您的应用程序提供功能标志。功能标志使您能够自信地逐步推出新的应用程序功能、A/B 测试新的接口设计、补充基于主干的开发策略等等...
    99+
    2023-03-06
    Laravel Pennant
  • Laravel 10 正式发布(新特性介绍)
    Laravel 10现已发布,包括最低要求的PHP v8.1版本、新的Laravel Pennant软件包、可调用的验证规则、本地类型声明等等。Laravel发布计划在Laravel 9之前,主要的框架版本每年发布两次,或者大约每六个月发布...
    99+
    2023-03-06
    Laravel 10 Laravel10 Laravel升级
  • Laravel中10个实用的方法
    这篇文章将为大家详细讲解有关Laravel中10个实用的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Laravel 中一些常用的用法1. 在 find 方法中指定属性User::find(1,&nb...
    99+
    2023-06-14
  • Laravel中10个有用的用法小结
    本文给大家介绍了Laravel 中一些常用的用法 1. 在 find 方法中指定属性 User::find(1, ['name', 'email']); User::findOr...
    99+
    2022-11-11
    Laravel技巧用法 Laravel小技巧
  • laravel的核心组件illuminate怎么使用
    本篇内容介绍了“laravel的核心组件illuminate怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!composer来安装La...
    99+
    2023-07-05
  • Laravel文件处理:PHP异步编程的新趋势?
    Laravel是一个流行的PHP框架,它提供了许多强大的工具和功能,帮助开发人员更轻松地构建Web应用程序。其中之一就是文件处理,Laravel提供了一些非常方便的功能来处理文件上传、存储和管理。但是,随着PHP异步编程的兴起,Larave...
    99+
    2023-10-05
    异步编程 文件 laravel
  • 如何使用 Python 和 Laravel 实现实时数组更新?
    在现代Web应用程序中,实时数据更新是至关重要的。实时更新可以使用户在没有刷新浏览器的情况下获取最新的数据。在这篇文章中,我们将讨论如何使用Python和Laravel实现实时数组更新。 什么是实时数组更新? 实时数组更新指的是在We...
    99+
    2023-10-01
    laravel 实时 数组
  • Laravel 中的 Python:完美的组合吗?
    Laravel 是一个流行的 PHP Web 框架,而 Python 是一种强大的编程语言。两者都有各自的优势和适用场景,但是它们是否可以完美地结合在一起呢?让我们来看看 Laravel 中的 Python,以及它们能否成为一对完美的组合。...
    99+
    2023-08-08
    windows unix laravel
  • laravel的日志文件在哪
    laravel的日志文件在项目的“storage/logs”目录下。在这个目录中,可以找到Laravel应用程序运行时产生的所有日志文件,每个日志文件都具有日期为文件名的格式,例如“laravel-2022-01-01.log”。通过使用L...
    99+
    2023-07-11
  • laravel的中间件middleware怎么用
    这篇文章将为大家详细讲解有关laravel的中间件middleware怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。中间件可以对请求进行过滤,这里可以利用中间件来验证用户是否登录,如果用户登录则可以...
    99+
    2023-06-21
  • Laravel中间件的使用详解
    目录一:创建中间件二:前置和后置中间件1:前置中间件2:后置中间件三:注册中间件1:注册全局中间件2:为路由分配中间件3:中间件组4:排序中间件5:中间件参数6:Terminable...
    99+
    2023-02-08
    Laravel中间件使用 Laravel中间件
  • 文件框架开发的新趋势:Go与Laravel的集成方式?
    随着Web应用的日益普及,文件框架的开发也愈发成熟。在这个领域,Go和Laravel是两个备受关注的技术,它们都有着自己的特点和优势。那么,将它们集成起来,是否有更好的效果呢? 一、Go的优势 Go是一种高效、简单和强大的编程语言,它是由...
    99+
    2023-06-25
    laravel 文件 框架
  • 文件框架架构的新选择:Go与Laravel的完美结合?
    文件框架架构是一种常用的开发方式,通过文件夹层次结构将代码进行组织。在现代应用程序开发中,有许多文件框架框架选择可供开发人员使用。其中,Go和Laravel是两个备受瞩目的框架,它们的完美结合在文件框架架构中也不例外。 Go是一个开源编程...
    99+
    2023-06-25
    laravel 文件 框架
  • Laravel中的Shell脚本:API开发的新选择?
    Laravel是一个流行的PHP框架,它提供了丰富的功能和工具,用于快速构建Web应用程序。除了常规的Web应用程序开发,Laravel还提供了一种新的选择,即使用Shell脚本开发API。本文将探讨Laravel中的Shell脚本和它在...
    99+
    2023-09-26
    laravel shell api
  • laravel使用组件实现微信网页授权登入
    laravel框架中的实现简单实现微信网页授权登入 首先引入基于laravel的easywechat的组件,laravel版本5.8 $ cd laravel $ compose...
    99+
    2022-11-11
    laravel微信网页授权登入 php实现微信网页授权登录 easywechat微信网页授权登录
  • Laravel路由文件划分的方法
    这篇文章将为大家详细讲解有关Laravel路由文件划分的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最初,我想到了利用路由组方法可以接收文件,这就是 laravel 在 RouteServicePr...
    99+
    2023-06-15
  • laravel的中间件有这么作用
    本篇内容介绍了“laravel的中间件有这么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在laravel中,中间件的作用就是过滤HTT...
    99+
    2023-06-29
  • 浅谈laravel中间件的创建思路
    Laravel 中间件提供了一种机制在不修改逻辑代码的情况下,中断原本程序流程,通过中间件来处理一些事件,或者扩展一些功能。比如日志中间件可以方便的记录请求和响应日志,而不需要去更改...
    99+
    2022-11-12
    laravel 中间件
  • PHP 同步 Laravel 数组的优缺点是什么?
    Laravel 是一个流行的 PHP Web 开发框架,它提供了大量的工具和功能来简化开发流程。其中一个关键的功能就是数组同步。 数组同步是指在 Laravel 中,多个数组之间的数据会自动同步。这意味着,当你修改其中一个数组的数据时,其...
    99+
    2023-09-18
    同步 laravel 数组
  • Java Path和Laravel:异步编程的完美组合?
    随着Web应用程序的日益普及,异步编程已经成为了Web开发中不可或缺的一部分。Java和Laravel是两种非常流行的编程语言,它们各自都有自己的异步编程特性。但是,将Java Path和Laravel结合起来使用,可以让你在开发异步We...
    99+
    2023-07-19
    path laravel 异步编程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作