赵斯海德曼/功能切换

dev-main 2021-12-19 02:03 UTC

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