, (*1)
Feature Flags
This library gives you "feature flag" functionality., (*2)
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., (*3)
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., (*4)
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., (*5)
Check if a feature is enabled like this:, (*6)
$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, (*7)