Skip to content

pascalheidmann/lib-featuretoggle

Repository files navigation

Feature toggle library

Usage

use \FeatureToggle\FeatureToggleManager;
use \FeatureToggle\Condition\StaticCondition;
use \FeatureToggle\FeatureToggle\FeatureToggle;
use \FeatureToggle\Repository\ArrayRepository;

$featureToggle = new FeatureToggle('my-feature-toggle', new StaticCondition(true));
$repository = new ArrayRepository($featureToggle);
$featureToggleManager = new FeatureToggleManager($repository);

// ...

$canIUseMyFeature = $featureToggleManager->get('my-feature-toggle'); // true

Advanced usage

You might want to have multiple repositories: one which loads each feature toggle from persistent storage like a database or Redis, and in front of it hardcoded values with ArrayFeatureToggleRepository:

$overrideFeatureToggle = new StaticFeatureToggle('my-feature-toggle', false);
$staticRepository = new ArrayFeatureToggleRepository($overrideFeatureToggle);

// ...
// database has feature-toggle `my-feature-toggle` with value `true`
$dbRepository = new DatabaseFeatureToggleRepository($user);
// first repo with key wins
$featureToggleManager = new FeatureToggleManager($staticRepository, $dbRepository);

// ...
$canIUseMyFeature = $featureToggleManager->get('my-feature-toggle'); // false

About

Library for Feature Toggles under PHP7.4+

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages