分桶方法decide
分桶方法decide
本主题概述了 PHP SDK 的 decide 方法,这些方法可用于在云眼灰度发布(特性标帜)AB实验中为用户返回标帜判定。
使用 Decide 方法返回用户的标帜决策。标帜决策包括标帜启用/禁用状态和标帜变体。
本页介绍以下决策方法:
决定
版本
SDK 3.7 及更高版本
描述
返回用户的标帜键的决策结果。决策结果在 EyeofcloudDecision 对象中返回,并包含传递标帜规则所需的所有数据。
Decide 是 UserContext 对象的一种方法。有关详细信息,请参阅 EyeofcloudUserContext。
有关返回的决策对象的详细信息,请参阅 EyeofcloudDecision 。
参数
下表描述了 Decide 方法的参数:
参数
类型
描述
.key
字符串
灰度发布(特性标帜)的键
决定选项(可选)
数组
Array of EyeofcloudDecideOption enums.请参阅下表。
云眼分桶结果 EyeofcloudDecision选项
下面的示例演示如何在任何 Decide 方法上单独设置选项,或在实例化 Eyeofcloud 客户端时将其设置为全局默认值。
.PHP
use Eyeofcloud\Eyeofcloud; use Eyeofcloud\Decide\EyeofcloudDecideOption; $eyeofcloud_client = new Eyeofcloud(null, null, null, null, null, null, null, null, "<YOUR_SDK_KEY>", [EyeofcloudDecideOption::DISABLE_DECISION_EVENT]); $user = $eyeofcloud_client->createUserContext("test_user"); $decision_result_map = $user->decideAll([EyeofcloudDecideOption::ENABLED_FLAGS_ONLY, EyeofcloudDecideOption::IGNORE_USER_PROFILE_SERVICE]);
下表显示了可以在“决定方法”上设置的选项的详细信息。
云眼分桶结果 EyeofcloudDecision选项枚举
如果设置:
禁用决策事件
防止访问者在仍获得变体的同时触发展示,这将禁止在 Eyeofcloud 应用程序的“结果”页面上显示 Decide 方法的结果。
此设置可能是为什么决策事件调度枚举在返回的 falseEyeofcloudDecision
对象或 DECIDE 通知侦听器有效负载。
已启用仅标帜
仅返回已启用标帜的决策。此选项仅适用于确定多个标帜的方法,如 Decide All 方法。如果此选项无效,则忽略此选项。如果未设置此选项,SDK 将返回所有决策,无论是否启用该标帜。
忽略用户配置文件服务
设置后,SDK 会绕过 UPS(查找和保存)进行决策。
如果未设置此选项,UPS 将覆盖受众定位、流量分配和实验互斥组。
includeReasons
Return log messages in the Reasons field of EyeofcloudDecision object. Note that unlike info or debug messages, critical error messages are always returned, regardless of this setting.
excludeVariables
Exclude flag variable values from the decision result. Use this option to minimize the returned decision by skipping large JSON variables.
Returns
The Decide method returns an EyeofcloudDecision object. For more information, see EyeofcloudDecision.
If the method encounters a critical error (SDK not ready, invalid flag key, etc), then it returns a decision with a null Variation Key field and populates the Reasons field with error messages (regardless of the Include Reasons option).
Example Decision
The following is an example of calling the Decide method and accessing the returned EyeofcloudDecision object:
PHP
// create the user and decide which flag rule & variation they bucket into $user = $eyeofcloud->createUserContext('user123', ['logged_in' => true]); $decision = $user->decide('product_sort'); // variation. if null, decision fail with a critical error $variationKey = $decision->getVariationKey(); // flag enabled state: $enabled = $decision->getEnabled(); // String variable value: $value = (string) $decision->getVariables()['logged_in']; // all variable values $allVarValues = $decision->getVariables(); // flag decision reasons $reasons = $decision->getReasons(); // user for which the decision was made $userContext = $decision->getUserContext();
Side Effects
Invokes the notification listener if this listener is enabled.DECISION
Decide All
Returns decisions for all active (unarchived) flags for a user.
See EyeofcloudDecision for details.
Version
SDK v3.6.1 and higher
Description
Use the Decide All method to return a map of flag decisions for a user.
Parameters
The following table describes parameters for the Decide All method:
Parameter
Type
Description
options (optional)
Array
Array of EyeofcloudDecideOption enums. See EyeofcloudDecideOption.
Returns
The Decide All method returns a map of EyeofcloudDecision objects. For more information, see EyeofcloudDecision.
If the method fails for all flags (for example, the SDK isn't ready or the user context is invalid), then it returns an empty map. If the method detects an error for a specific flag, it returns error messages in the Reasons field of the decision for that flag.
Examples
The following is an example of getting flags for the user with the Decide All call:
PHP
// make decisions for all active (unarchived) flags in the project for a user $decisions = $user->decideAll(); // or only for enabled flags $decisions = $user->decideAll(['ENABLED_FLAGS_ONLY']); $flagKeys = array_keys($decisions); $flagDecisions = array_map( function($decision) { return $decision; }, $decisions ); $decisionForFlag1 = $decisions['flag_1'];
Side effects
Invokes the notification listener for each decision, if this listener is enabled. DECISION
Decide For Keys
In the PHP SDK, The Decide For Keys method makes decisions for a user for specified flag keys
Version
SDK v3.6 and higher
Description
Get a map of flag decisions for an array of flag keys.
Parameters
The following table describes parameters for the Decide method:
The following table describes parameters for the Decide For Keys method:
Parameter
Type
Description
keys
Array
Array of string flag keys.
options (optional)
Array
Array of EyeofcloudDecideOption enums. See EyeofcloudDecideOption.
Returns
Returns a map of EyeofcloudDecisions. For more information, see EyeofcloudDecision.
If the method fails for all flags (for example, the SDK isn't ready or the user context is invalid), then it returns an empty map. If the method detects an error for a specific flag, it returns error messages in the Reasons field of the decision for that flag.
Example
The following is an example of getting specified flags for the user:
PHP
// make a decisions for specific enabled flags $options = ['ENABLED_FLAGS_ONLY']; $decisions = $user->decideForKeys(['flag_1', 'flag_2'], $options); $decisionForFlag1 = $decisions['flag_1']; $decisionForFlag2 = $decisions['flag_2'];
Side effects
Invokes the notification listener for each decision, if this listener is enabled. DECISION
Source files
The language/platform source files containing the implementation for PHP is Eyeofcloud.php.
Updated 2 months ago
[
Create User Context
](/experimentation/v4.0.0-full-stack/docs/create-user-context-php)[
Track Event
](/experimentation/v4.0.0-full-stack/docs/track-event-php)
Did this page help you?
Yes
No
创建用户上下文
介绍创建用户上下文方法,该方法为云眼灰度发布(特性标帜)AB实验中的标帜决策和事件创建用户上下文。
此方法的目的是创建用户并设置用户上下文一次,因此不必在每次做出标帜决策或跟踪事件时都指定用户。可以定义多个用户上下文。系统将用户上下文作为运行时对象返回,否则不会持久化。
版本
1.0.0-beta 或更高版本
描述
此调用为标帜决策和事件创建用户上下文。可以在 Eyeofcloud 客户端实例上成功调用此方法,甚至在完全配置实例之前也是如此。
参数
下表列出了必需参数和可选参数:
参数
类型
描述
(必选)用户 ID
字符串
用户的 ID。
属性
可选
Map
自定义键值字符串对的映射,指定系统用户用于受众群体定位的用户的属性。有关更多详细信息,请参阅以下部分。
受众群体属性
为用户设置自定义受众群体属性,可以使用这些属性来定位受众群体。可以将字符串、数字、布尔值和 nil 作为自定义用户属性值传递。如果要根据他们使用的应用程序变体定位访问群体,还可以传入格式为语义变体的字符串,然后在 Eyeofcloud 应用中定义受众条件。version
🚧 重要
在访问群体评估期间,如果没有为给定的访问群体条件传递有效的属性值(例如,如果在受众群体条件需要布尔值时传递字符串,或者忘记传递值),则系统会跳过该条件。发生这种情况时,SDK 日志会包含警告。
返回
返回一个 EyeofcloudUserContext 对象。有关详细信息,请参阅云眼用户上下文。
例
Dart
// option 1: create a user, then set attributes var user = await flutterSDK.createUserContext("user123"); var attributes = <String, dynamic>{}; attributes["is_logged_in"] = false; attributes["app_version"] = "1.3.2"; user!.setAttributes(attributes); // option 2: pass attributes when creating the user var attributes = <String, dynamic>{}; attributes["is_logged_in"] = false; attributes["app_version"] = "1.3.2"; var eyeofcloudUserContext = await eyeofcloudClient.createUserContext("user123", attributes);
参见
源文件
包含 Flutter SDK for Android Eyeofcloud 和 Swift 实现的语言/平台源文件.java为 EyeofcloudClient.swift。