mikefrancis/laravel-unleash
最新稳定版本:v0.10
Composer 安装命令:
composer require mikefrancis/laravel-unleash
包简介
An Unleash client for Laravel
README 文档
README
An Unleash client for Laravel.
Installation
composer require mikefrancis/laravel-unleash
Export package config:
php artisan vendor:publish --provider="MikeFrancis\LaravelUnleash\ServiceProvider"
Configuration
Documentation for configuration can be found in config/unleash.php.
Usage
use \MikeFrancis\LaravelUnleash\Unleash; $unleash = app(Unleash::class); if ($unleash->isFeatureEnabled('myAwesomeFeature')) { // Congratulations, you can see this awesome feature! } if ($unleash->isFeatureDisabled('myAwesomeFeature')) { // Check back later for more features! } $feature = $unleash->getFeature('myAwesomeFeature'); $allFeatures = $unleash->getFeatures();
Facades
You can use the Unleash facade:
use Unleash; if (Unleash::isFeatureEnabled('myAwesomeFeature')) { // Congratulations, you can see this awesome feature! } if (Unleash::isFeatureDisabled('myAwesomeFeature')) { // Check back later for more features! } $feature = Unleash::getFeature('myAwesomeFeature'); $allFeatures = Unleash::getFeatures();
or use the generically named Feature facade:
use Feature; if (Feature::enabled('myAwesomeFeature')) { // Congratulations, you can see this awesome feature! } if (Feature::disabled('myAwesomeFeature')) { // Check back later for more features! } $feature = Feature::get('myAwesomeFeature'); $allFeatures = Feature::all();
Dynamic Arguments
If your strategy relies on dynamic data at runtime, you can pass additional arguments to the feature check functions:
use \MikeFrancis\LaravelUnleash\Unleash; use Config; $unleash = app(Unleash::class); $allowList = config('app.allow_list'); if ($unleash->isFeatureEnabled('myAwesomeFeature', $allowList)) { // Congratulations, you can see this awesome feature! } if ($unleash->isFeatureDisabled('myAwesomeFeature', $allowList)) { // Check back later for more features! }
Blade
Blade directive for checking if a feature is enabled:
@featureEnabled('myAwesomeFeature') Congratulations, you can see this awesome feature! @endfeatureEnabled
Or if a feature is disabled:
@featureDisabled('myAwesomeFeature') Check back later for more features! @endfeatureDisabled
You cannot currently use dynamic strategy arguments with Blade template directives.
Middleware
This package includes middleware that will deny routes depending on whether a feature is enabled or not.
To use the middle, add the following to your app/Http/Kernel.php:
protected $routeMiddleware = [ // other middleware 'feature.enabled' => \MikeFrancis\LaravelUnleash\Middleware\FeatureEnabled::class, 'feature.disabled' => \MikeFrancis\LaravelUnleash\Middleware\FeatureDisabled::class, ];
You can then use the middleware in your routes:
Route::get('/new-feature-path', function () { // })->middleware('feature.enabled:myAwesomeFeature'); Route::get('/terrible-legacy-path', function () { // })->middleware('feature.disabled:myAwesomeFeature');
or in your controllers like so:
class ExampleController extends Controller { public function __construct() { $this->middleware('feature.enabled:myAwesomeFeature'); // or $this->middleware('feature.disabled:myAwesomeFeature'); } }
You cannot currently use dynamic strategy arguments with Middleware.
统计信息
- 总下载量: 144.41k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 62
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-08-14