jtgrimes/laravel-simple-featureflag

为Laravel快速实现的特性开关

dev-master / 1.0.x-dev 2017-06-16 04:05 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:30:37 UTC


README

Latest Version on Packagist Software License Build Status Quality Score

此包为Laravel 5+提供了一种快速而简单的使用特性开关的方法。它不提供用户配置,也不为A/B测试设置。它只是一个简单的开关。

安装

使用Composer安装包

$ composer require JTGrimes/laravel-simple-featureflag

您需要更新config/app.php中的提供者数组,以包含此包的服务提供者

'providers' => [
    ...
    JTGrimes\FeatureFlag\ServiceProvider::class,
];

最后,您需要发布配置文件:您可以使用以下命令发布迁移

$ php artisan vendor:publish --provider="JTGrimes\FeatureFlag\ServiceProvider"

配置

以下显示了默认的配置文件。数组键是您使用特性开关的特性的名称,值是特性是否启用的true/false。 (我的惯例是设置FEATURE_* .env变量为'开'或'关',但任何真实表达式都适用。)未在配置文件中找到的任何特性都将默认启用。

return [
    'something' => (env('FEATURE_SOMETHING', 'on') == 'on'),
    'something_else' => (env('SOME_OTHER_FEATURE', 'on') == 'on'),
    'one_more' => false,
];

用法

该包提供了一个辅助函数。要确定特性是否启用,您可以从代码中的任何位置调用feature()函数。

   $permitAccess = feature('name');

我经常在中间件中使用此函数来防止访问尚未开放的页面...

        if (!feature('v2')) {
            if (str_contains($request->getUri(), 'v2')) {
                abort(Response::HTTP_NOT_FOUND);
            }
        }
        return $next($request);

还有Blade视图的辅助函数

@ifFeature ('test')
    Feature on
@else
    Feature off
@endif

@else是可选的,但您必须包含@endif以关闭if语句。

变更日志

请参阅CHANGELOG了解最近更改的详细信息。

测试

$ composer test

贡献

请参阅CONTRIBUTINGCONDUCT了解详细信息。

安全

如果您发现任何安全相关的问题,请通过电子邮件jtgrimes@gmail.com联系,而不是使用问题跟踪器。

鸣谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件