jtgrimes / laravel-simple-featureflag
为Laravel快速实现的特性开关
dev-master / 1.0.x-dev
2017-06-16 04:05 UTC
Requires
- php: ~5.6|~7.0
- illuminate/support: >5.1
Requires (Dev)
- mockery/mockery: ^0.9.9
- orchestra/testbench: ^3.4
- phpunit/phpunit: ~4.0||~5.0
- squizlabs/php_codesniffer: ^2.3
This package is not auto-updated.
Last update: 2024-09-28 20:30:37 UTC
README
此包为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
贡献
请参阅CONTRIBUTING和CONDUCT了解详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件jtgrimes@gmail.com联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。