switchover / php-sdk
Switchover PHP SDK。功能切换管理变得简单!
Requires
- php: >=7.2
- guzzlehttp/guzzle: ^7.0
- monolog/monolog: ^2.1
- psr/log: ^1.1
- psr/simple-cache: ^1.0
Requires (Dev)
- phpunit/phpunit: ^9
README
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)