emmetog/feature-flags

A set of classes to easily use feature flags in a PHP application

v0.1.0 2016-05-30 17:59 UTC

This package is auto-updated.

Last update: 2024-04-28 00:05:49 UTC


README

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