rescaled/simple-feature

该软件包旨在为 Laravel 7+ 提供一个功能齐全且简单的功能标志配置,通过环境变量实现。

资助软件包维护!
rescaled

1.0.2 2022-02-08 21:04 UTC

This package is auto-updated.

Last update: 2024-09-09 13:04:01 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Simple Feature 允许您通过环境变量定义功能标志,并在 Laravel 应用程序中检查其状态。它还提供了一些预定义的中介件,您可以使用它们来实现这一目的。

安装

您可以通过 composer 安装此软件包。

composer require rescaled/simple-feature

使用

定义功能标志

功能标志定义在您的环境文件中。它们必须以 snake case 形式定义,并以前缀 FEATURE_ 开头。

FEATURE_FIRST_TEST=true
FEATURE_SECOND_TEST=true

FEATURE_THIRD_TEST=false
FEATURE_FOURTH_TEST=false

直接使用

您可以直接按以下方式访问软件包的方法。

SimpleFeature::enabled('firstTest') // true
SimpleFeature::disabled('firstTest') // false
SimpleFeature::allEnabled(['firstTest', 'secondTest']) // true
SimpleFeature::allDisabled(['thirdTest', 'fourthTest']) // true
SimpleFeature::allEnabled(['firstTest', 'thirdTest']) // false
SimpleFeature::allDisabled(['firstTest', 'thirdTest']) // false

中介件

该软件包提供了两个中介件,允许您检查一组给定的功能是否启用或禁用。

// FEATURE_REGISTRATION=true
// FEATURE_ON_PREMISE=true

Route::get('/register', [RegistrationController::class, 'create'])->middleware('feature.enabled:registration');
Route::get('/billing', [BillingController, 'show'])->middleware('feature.disabled:onPremise');

如果功能未达到期望的状态,中介件将终止请求并返回 404 状态码。

Blade

此外,您还可以使用条件 Blade 指令根据特定功能标志的状态渲染内容。

@feature('registration')
    <a href="/register">Register</a>
@endfeature
@unlessfeature('onPremise')
...
@endunlessfeature

测试

composer test

变更日志

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

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全漏洞

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

致谢

许可

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