赵斯海德曼 / 功能切换
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: 2024-09-23 05:45:52 UTC
README
使用说明
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
高级使用
你可能需要多个仓库:一个从持久存储(如数据库或Redis)加载每个功能开关的仓库,以及一个前面硬编码值的仓库,使用 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