vestd/feature-flags

此包已被弃用且不再维护。未建议替代包。

功能标志

1.0.0 2016-02-01 16:28 UTC

This package is auto-updated.

Last update: 2021-01-23 20:51:20 UTC


README

这是一个基本的Laravel 5包,用于实现功能标志。

安装

首先,通过Composer引入包。

composer require vestd/feature-flags

然后,如果使用Laravel 5,请在 app/config/app.php 中包含服务提供者。

'providers' => [
    Vestd\FeatureFlags\FeatureFlagServiceProvider::class
];

最后发布配置文件,这将是你放置功能标志配置的地方

php artisan vendor:publish --provider="Vestd\FeatureFlags\FeatureFlagServiceProvider"

Laravel中的使用

在你的代码库中,使用Laravel的依赖注入来加载FeatureFlags容器。然后你可以调用get方法来检索先前配置的功能标志。如果标志不存在,将抛出异常。

public function index(FeatureCollection $featureCollection)
{
    $feature = $featureCollection->get('new_home_page');

    if ($feature->isEnabled()) {
        view('new_homepage');
    } else {
        view('homepage');
    }
}

配置

在其最简单的形式中,配置文件将允许你指定一个键和一个真或假的标志

  'feature_a' => true,
  'feature_b' => false,

另一种方法是使用关联数组作为键,使用此方法你可以指定哪些用户或组可以访问功能

  'feature_c' => [
    'users'  => [123, 456],
    'groups' => ['admin', 'beta'],
  ]

如果你使用更复杂的功能,你可以使用以下isEnabled检查状态

public function index(FeatureFlags $featureFlags)
{
    $feature = $featureFlags->get('new_home_page');

    if ($feature->isEnabledForUser(456) || $feature->isEnabledForGroup('admin')) {
        view('new_homepage');
    } else {
        view('homepage');
    }
}

即将推出

通过除固定配置文件之外的其他方法配置标志的能力,例如数据库

贡献

接受贡献,但此包主要是在Vestd应用程序中使用进行开发的,所以如果你的用例与我们的需求差异太大,可能不会被接受。