emmetog / feature-flags

Provides a simple set of classes to manipulate feature flags

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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


Languages

Language:PHP 100.0%