fraserreed / feature-flag
为PHP >=5.5提供简单的功能标志检查
v0.3
2015-09-16 01:39 UTC
Requires
- php: >=5.5
Requires (Dev)
- phpunit/phpunit: 4.8.*
- satooshi/php-coveralls: 0.6.1
This package is not auto-updated.
Last update: 2024-09-28 18:16:03 UTC
README
为PHP >=5.5提供简单的功能标志检查。
安装
使用composer将此包安装到您的应用程序中。
在require部分,添加以下依赖
"fraserreed/feature-flag": "~0.2"
用法
以下任何一种方法都可以扩展并放入大多数框架中的视图助手。
静态配置
对于静态、基于数组的特征标志,理想情况下用于多环境部署。
首先创建静态过滤器
$config = [
'feature-one' => true,
'feature-two' => false,
'feature-three' => true,
'feature-four' => true
];
$featureFlagFilter = new \FeatureFlag\Filter\Simple( $config );
然后断言功能是否启用或未启用
$featureFlag = new \FeatureFlag\FeatureFlag( $featureFlagFilter );
echo (int) $featureFlag->isEnabled( 'feature-one' ) . " should be true\n";
echo (int) $featureFlag->isEnabled( 'feature-two' ) . " should be false\n";
echo (int) $featureFlag->isEnabled( 'feature-three' ) . " should be true\n";
echo (int) $featureFlag->isEnabled( 'feature-four' ) . " should be true\n";
echo (int) $featureFlag->isEnabled( 'feature-five' ) . " should be false (doesn't exist)\n";
分布式IP地址加权
对于预期的IPv4谱分布,可以使用加权配置。对IP进行crc32
哈希校验和,模100。
首先使用预期的分布因子创建过滤器
//feature flag will be enabled 75% of the time
$featureFlagFilter = new \FeatureFlag\Filter\DistributedIp( 75 );
然后断言功能是否启用或未启用
$featureFlag = new \FeatureFlag\FeatureFlag( $featureFlagFilter );
echo (int) $featureFlag->isEnabled( 'feature-one', '192.168.0.161' ) . " should be false\n";
echo (int) $featureFlag->isEnabled( 'feature-one', '31.12.127.255' ) . " should be true\n";
echo (int) $featureFlag->isEnabled( 'feature-one', '46.248.224.183' ) . " should be true\n";
echo (int) $featureFlag->isEnabled( 'feature-one', '58.136.218.102' ) . " should be true\n";
测试
要运行测试,您需要安装phpunit。
运行测试
$ phpunit
贡献
对于任何问题,请通过此存储库提交问题。要贡献,请fork并提交PR。
许可
MIT,见LICENSE。