SuperAPI AI 工具集

laravel-feature-flags

测试与质量

查看项目

更新于 10-16 09:57

技能介绍

用途:在 Laravel 应用中管理特性标志,支持按用户或团队作用域控制功能开关、A/B 测试变体与渐进式发布。

安装:composer require laravel/pennant,执行 php artisan vendor:publish --provider="Laravel\Pennant\PennantServiceProvider" 与 php artisan migrate。

主要能力:

  • 定义特性:闭包式(简单布尔、按用户属性、Lottery::odds 渐进发布)或用 php artisan pennant:feature 生成类式特性。
  • 检查:Feature::active / inactive、allAreActive、someAreActive、allAreInactive、someAreInactive,以及取富值 Feature::value / values。
  • 作用域:默认当前认证用户,可 Feature::for($user) 或团队、null(访客)作用域。
  • 富值 A/B 测试:闭包返回非布尔值(如 Lottery::odds(1,3)->choose(...)),Blade 中按变体渲染。
  • 条件执行:Feature::when / unless。
  • Blade 指令:@feature ... @else ... @endfeature。
  • 中间件:EnsureFeaturesAreActive::using(...),并用 whenInactive 自定义未激活响应。
  • 程序化管理:activate、activateForEveryone、deactivate、deactivateForEveryone、forget、purge。
  • 预加载:Feature::for($user)->load([...]) 或 loadAll(),减少重复查询。
  • 存储驱动:database(默认)或 array(测试/无状态场景),配置位于 config/pennant.php,可用 PENNANT_STORE 环境变量切换。
  • 测试:Feature::activate()/deactivate() 保证确定性,用 array 驱动加速。

适用场景:功能灰度、Beta 访问控制、A/B 变体、按团队/用户差异化功能。

限制:资料未提供收费、价格与具体版本要求信息,暂无官方说明。