kirchbaum / laravel-feature-toggle
此包的最新版本(dev-master)没有可用的许可信息。
Laravel PHP和JavaScript的简单功能开关
dev-master
2016-02-25 11:32 UTC
Requires
- php: >=5.4.0
- illuminate/config: ~5.0
- illuminate/support: ~5.0
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-08-29 04:14:22 UTC
README
此包允许在Laravel中轻松高效地进行功能标志管理。功能包括:
- 按环境(例如本地、开发、测试、生产)定义功能开关。
- 一种可管理的将标志保留在源控制中的方法,而不会变得难以管理。
- 为每个功能创建一个默认设置,如果找不到特定环境的设置,则将使用此设置。
- 能够轻松地请求功能的状态,并自动根据应用程序正在运行的当前环境获取正确的设置。
- 能够将功能标记为适用于JavaScript导出。
- 一个辅助方法,可以轻松导出适用于JavaScript的功能标志,并将它们传递给前端框架。
安装
将包添加到您的项目中
composer require kirschbaum/laravel-feature-flag
添加以下服务提供者
// config/app.php 'providers' => [ ... Kirschbaum\LaravelFeatureFlag\ServiceProvider::class, ... ];
此包还附带了一个外观,这使得获取您所处环境的正确标志变得简单
// config/app.php 'aliases' => [ ... 'FeatureFlag' => Kirschbaum\LaravelFeatureFlag\Facades\FeatureFlag::class, ... ]
使用arisan命令发布配置文件
php artisan vendor:publish --provider="Kirschbaum\LaravelFeatureFlag\ServiceProvider"
配置看起来是这样的
<?php return [ 'feature-1' => [ 'environments' => [ 'default' => false, 'local' => true, 'dev' => false, 'stage' => false ], 'js_export' => true, ], 'feature-2' => [ 'environments' => [ 'default' => false, 'production' => true, ], 'js_export' => true, ], ];
用法
通用PHP使用
if(FeatureFlag::isEnabled('feature-1')) { // Only do stuff if feature is enabled. }
如果您需要将功能标志传递给前端JS框架(如Angular或Vue.js),可以使用getJavascriptFlags()方法
$js->put( [ 'pusher_public_key' => env('PUSHER_PUBLIC'), 'feature_flags' => FeatureFlag::getJavascriptFlags() ] );
并非所有功能标志都应该传递到前端,只有设置'js_export = true'的功能才会被包括。最终结果是包含正确环境标志的功能的简单数组
array:2 [▼ "feature-1" => true "feature-2" => false ]