vestd / feature-flags
此包已被弃用且不再维护。未建议替代包。
功能标志
1.0.0
2016-02-01 16:28 UTC
Requires
- php: >=5.4.0
- illuminate/support: ~5.0
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~4.0
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应用程序中使用进行开发的,所以如果你的用例与我们的需求差异太大,可能不会被接受。