dev-master
9999999-devSimple feature toggles for Laravel PHP and Javascript
The Requires
- php >=5.4.0
- illuminate/config ~5.0
- illuminate/support ~5.0
The Development Requires
by Nathan Kirschbaum
feature-flags feature-toggles toggles
Simple feature toggles for Laravel PHP and Javascript
This package allows for easy and efficient feature flag managment in Laravel. Features include:, (*1)
Add the package to your project:, (*2)
composer require kirschbaum/laravel-feature-flag
Add the following service provider:, (*3)
// config/app.php 'providers' => [ ... Kirschbaum\LaravelFeatureFlag\ServiceProvider::class, ... ];
This package also comes with a facade, making it easy to retrieve the correct flags for the environment you are in:, (*4)
// config/app.php 'aliases' => [ ... 'FeatureFlag' => Kirschbaum\LaravelFeatureFlag\Facades\FeatureFlag::class, ... ]
Publish the config file using the arisan command:, (*5)
php artisan vendor:publish --provider="Kirschbaum\LaravelFeatureFlag\ServiceProvider"
The configuration looks like this:, (*6)
<?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, ], ];
General PHP use:, (*7)
if(FeatureFlag::isEnabled('feature-1')) { // Only do stuff if feature is enabled. }
If you need to pass your feature flags to a front-end JS framework like Angular or Vue.js, you can do so by using the getJavascriptFlags() method:, (*8)
$js->put( [ 'pusher_public_key' => env('PUSHER_PUBLIC'), 'feature_flags' => FeatureFlag::getJavascriptFlags() ] );
Because not all feature flags should be passed to the front-end, only features with the setting 'js_export = true' will be included. The end result is a simple array of features with the correct flags for the environment:, (*9)
array:2 [▼ "feature-1" => true "feature-2" => false ]
Simple feature toggles for Laravel PHP and Javascript
feature-flags feature-toggles toggles