researchsquare / exposure
选择性地向用户子集展示新功能。
0.0.1
2015-10-07 21:04 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: ^4.0
This package is not auto-updated.
Last update: 2024-09-14 18:52:50 UTC
README
Research Square的Exposure库提供了基本的功能标志功能,允许您选择性地向用户子集展示新功能。这个库受到Etsy的Feature API的启发。
这个库目前处于开发的早期阶段,未来可能会有很大的变化,但我们希望保持公共API相对稳定。
目前,功能可以完全启用或禁用,为特定用户启用,或为用户的一定比例启用,从而实现新功能的逐步可用性。
无论选择哪种方法,功能检查都是通过
if (Exposure\Feature::isEnabled('feature-name')) { // feature specific logic. }
安装
使用以下命令安装最新版本:
$ composer require researchsquare/exposure
集成
要在您的应用程序中使用Exposure,您需要用您想要的特性集初始化它,并设置它运行的上下文。这如何发生主要取决于您自己来解决,但特性通常在您的配置中定义,而特征及其上下文将在您的应用程序启动时初始化。
<?php use Exposure; // $features is an array of features. Exposure\Feature::defineFeatures($features); // $context is an instance of Feature\Context. Exposure\Feature::setContext($context);
配置
已启用的功能
$configuration['feature-name'] = true;
已禁用的功能
$configuration['feature-name'] = false;
为特定用户启用的功能
$configuration['feature-name'] = array(
Exposure\Feature::USER => array(25, 26),
);
为50%用户启用的功能
$configuration['feature-name'] = array(
Exposure\Feature::PERCENTAGE => 50,
);
规则也可以组合。
为特定用户或50%用户启用的功能
$configuration['feature-name'] = array(
Exposure\Feature::USER => array(25, 26),
Exposure\Feature::PERCENTAGE => 50,
);
建立上下文
特征依赖于上下文来确定是否启用。上下文提供了有关应用程序环境的信息,例如当前用户。由于建立上下文的方法会因应用程序而异,因此由个别应用程序定义。目前,上下文提供了两段信息:当前用户的身份和桶标识。桶标识用于识别用户,无论他们是否匿名或已认证,并且在整个过程中应保持不变。这确保了特定用户的功能可用性是一致的。确保这种一致性的方法之一是将桶标识存储在cookie中,但这又是应用程序自己的任务。