pascalheidmann / feature-toggle
dev-main
2021-12-19 02:03 UTC
Requires
- php: ^7.4 || ~8.0.0 || ~8.1.0
Requires (Dev)
- jetbrains/phpstorm-attributes: ^1.0
- phpstan/phpstan: ^1.1
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
Suggests
- laminas/laminas-modulemanager: If you want to use this library in your laminas project with ease
This package is auto-updated.
Last update: 2025-03-23 07:01:55 UTC
README
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