pascalheidmann / feature-toggle
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/pascalheidmann/feature-toggle
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-09-23 08:22:16 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