rescaled / simple-feature
该软件包旨在为 Laravel 7+ 提供一个功能齐全且简单的功能标志配置,通过环境变量实现。
1.0.2
2022-02-08 21:04 UTC
Requires
- php: ^8.0
- illuminate/contracts: ^8.73|^9.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- nunomaduro/collision: ^5.10
- nunomaduro/larastan: ^1.0
- orchestra/testbench: ^6.22
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-09 13:04:01 UTC
README
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)。有关更多信息,请参阅 许可文件。