Skip to content

Provides a simple set of classes to manipulate feature flags

Notifications You must be signed in to change notification settings

emmetog/feature-flags

Repository files navigation

Build Status

Feature Flags

This library gives you "feature flag" functionality.

Why is this useful? If you want to implement "feature flags" in your application where features are only enabled for certain people, then this library will help. It allows you to do continuous delivery because you can ship features to production even when they are not quite ready for the masses, the trick is to deploy the feature disabled and enable it to only a select few. When it's ready you can remove the feature flag from the code and boom, the feature is now enabled for everyone.

Usage

To use this library you'll need to extend the FeatureRepositoryInterface and FeatureFlagRepositoryInterface interfaces. These interfaces describe the interaction with the database. The classes should return Feature and FeatureFlag entities respectively.

Once you've done this, inject them into the FeatureEnabledChecker service. If you use the Symfony Dependency Injection Container then you can define this service in your services.yml.

Check if a feature is enabled like this:

$featureEnabledChecker = new FeatureEnabledChecker(
    $myFeatureRepository
    $myFeatureFlagRepository,
);

$isFeatureEnabledForUser = $featureEnabledChecker->isFeatureEnabled('my_cool_feature', 'my_user_id');

SemVer Sentry

You'll find a report of the semantic version conformance of the past releases of this repo here: https://www.semver-sentry.com/report/emmetog/feature-flags

About

Provides a simple set of classes to manipulate feature flags

Resources

Stars

Watchers

Forks

Packages

 
 
 

Languages