switchover/php-sdk

Switchover PHP SDK。功能切换管理变得简单!

0.5.4 2021-01-02 18:19 UTC

This package is auto-updated.

Last update: 2024-09-29 06:20:03 UTC


README

CI codecov CodeFactor

Switchover

Switchover 是一款用于管理应用程序中功能切换(也称为开关、标志或功能翻转)的软件即服务。可用于持续集成、持续交付、A/B 测试、金丝雀发布、实验以及您能想到的任何事情。

注意:此 SDK 适用于 PHP 项目

入门

安装

通过 composer

composer require switchover/php-sdk

对于 Laravel 用户

使用我们的 Laravel 包,可以快速在 Laravel 应用中开始使用 Switchover:[https://github.com/switchover-io/laravel-integration](https://github.com/switchover-io/laravel-integration)

初始化客户端

您可以在环境页面找到您的 SDK 密钥。复制它并用于初始化客户端

基本用法

// create a client, per default the client will cache the toggles 60 seconds
$client = new SwitchoverClient('<SDK-KEY');

//get some toggle values
$featureValue = $client->toggleValue('<TOGGLE-NAME>', false);

//or with context if you have specific (user) conditions
$context = new Context();
$context->set('email', 'brandon.taylor@acme.com');

$isFeatureVisible = $client->toggleValue('<OTHER-FLAG>', false, $context);

if ($isFeatureVisible) {
    // ...do something
}

什么是 上下文

上下文包含任何数据(键值对),这些数据将用于评估切换条件。这可以是任何东西,从用户相关的数据(电子邮件、userId)到纯技术信息(阶段、系统信息、版本等)。如果您有滚动选项,您必须提供 uuid(详细信息见下文)。

👀 请注意 我们 不会 向我们的服务器发送任何上下文数据(以及任何用户数据)。所有评估都在客户端进行。

在用户前端界面中,您通常会想要使用用户数据,如电子邮件或 userId 等,来评估您的功能标志。当然,切换条件也应包含相关的上下文键。

示例

$ctx = new Context([
    "email" => "brandon.taylor@bigcorp.org"
]);

$isFeatureEnabled = $client->toggleValue('my-big-feature', false, $ctx);

如果您为功能标志指定了滚动选项,则提供 UUID 很重要。您可以自由选择,但应该是唯一的。

示例

/* Feature flag has rollout options so we must provide a uuid.
   Here we use the email */
$ctx = new Context([
    "uuid" => "brandon.taylor@bigcorp.org"
]);

⚠️ 重要:滚动选项期望一个 uuid。如果没有提供 uuid,切换评估将失败并返回默认值。

客户端选项

可以向客户端传递许多选项

示例

$client = new SwitchoverClient('<SDK-KEY', [
    'cache.time' => 10,
    'http' => [
        'timeout' => '10',
        'proxy' => 'http://proxy.tld'
    ]
]);

文档

在官方文档中了解更多信息:[Switchover 快速入门](https://support.switch-over.io/docs/quick-primer)