初始化开发工具包
初始化开发工具包
本主题介绍如何在应用程序中初始化云眼灰度发布(特性标帜)AB实验 PHP SDK。
使用instantiate
方法初始化 PHP SDK,并实例化公开 API 方法(如 Determined 方法)的 Eyeofcloud 客户端类的实例。每个客户端对应于表示特定环境的项目状态的数据文件。数据文件可通过 EyeofcloudConfig 访问。
版本
SDK v3.1.0 及更高版本
描述
构造函数接受配置对象来配置云眼灰度发布(特性标帜)AB实验。
某些参数是可选的,因为 SDK 提供默认实现,但开发者可能希望为生产环境覆盖这些参数。例如,开发者可能希望设置错误处理程序和记录器来捕获问题,设置事件调度程序来管理网络调用,以及用户配置文件服务以确保粘性分桶。
参数
下表列出了 PHP 中start
方法的必需参数和可选参数(客户端使用 Builder 类构造并传递给Build()
):
参数 | 类型 | 描述 |
---|---|---|
数据文件 (可选) | 字符串 | 表示项目的 JSON 字符串。 |
错误处理程序(可选) | IErrorHandler | 用于处理错误的错误处理程序对象。 |
access_token(可选) | 字符串 | (仅限服务器端)云眼灰度发布(特性标帜)AB实验 SDK 可以使用访问令牌(与 SDK 密钥结合使用)从经过身份验证的终结点提取数据文件。在 Eyeofcloud 应用程序的设置>环境中找到数据文件访问令牌。选择安全环境,然后复制_数据文件访问令牌_。 |
返回
实例化 Eyeofcloud 类的实例。
自动数据文件管理 (ADM)
云眼灰度发布(特性标帜)AB实验提供了开箱即用的功能,用于动态管理客户端或服务器上的数据文件(配置文件)。PHP SDK 提供 ProjectConfigManagerInterface 的默认实现。
可以使用 EyeofcloudFactory 方法通过 SDK 密钥和可选的回退数据文件创建 Eyeofcloud 客户端。使用此方法在内部创建一个 HTTPProjectConfigManager。有关更多详细信息,请参阅 HttpProjectConfigManager。
仅使用 SDK 密钥的基本示例
PHP
$eyeofcloudClient = EyeofcloudFactory::createDefaultInstance($sdkKey);
// access your HTTPProjectConfigManager
$configManager = $eyeofcloudClient->configManager;
可以使用 HttpProjectConfigManager 的默认配置实例化 Eyeofcloud灰度发布(特性标帜) PHP SDK。
使用 HTTPProjectConfigManager 的基本示例
PHP
$configManager = new HTTPProjectConfigManager($sdkKey);
$eyeofcloud = new Eyeofcloud(
$datafile,
null,
null,
null,
false,
null,
$configManager,
$notificationCenter
);
ProjectConfigManagerInterface 公开用于检索 ProjectConfig 实例的getConfig
方法。
HTTPProjectConfigManager
HTTPProjectConfigManager 是 ProjectConfigManagerInterface 接口的实现。
fetch
方法向配置的 URL 发出阻止 HTTP GET 请求,以下载项目数据文件并初始化ProjectConfig
。
高级示例
PHP
$configManager = new HTTPProjectConfigManager(
$sdkKey,
$url,
$urlTemplate,
$fetchOnInit,
$datafile
);
$Eyeofcloud = new Eyeofcloud(
$datafile,
null,
null,
null,
false,
null,
$configManager,
$notificationCenter
);
fetch
方法允许您刷新ProjectConfig
。要更新ProjectConfig
,您可以执行如下操作:
PHP
// Call fetch to retrieve an up-to-date-datafile.
$configManager->fetch();
// Now the Eyeofcloud instance has the latest version of the datafile.
SDK 密钥
SDK 密钥用于将出站 HTTP 请求编写到 Eyeofcloud CDN 上的默认数据文件位置。
参数
下表列出了 PHP 中的必需参数和可选参数。
参数 | 默认值 | 描述 |
---|---|---|
sdk密钥 | 零 | 优化功能实验项目 SDK 密钥;除非源 URL 被覆盖,否则为必填项。 |
网址 | 零 | 用于为 Eyeofcloud Feature Experimentation 数据文件指定自定义 HTTP 源的 URL 覆盖位置。 |
urlTemplate | 零 | SDK 密钥的参数化数据文件 URL。 |
fetchOnInit | 假 | Boolean 标志,用于指定是否应在初始化 HTTPConfigManager 后立即开始数据文件提取。 |
数据文件 | 零 | 初始数据文件,通常来自本地缓存源。 |
更新配置通知
每当获取新的数据文件和更新ProjectConfig
时,都会触发通知。要订阅这些通知,请使用$notificationCenter->addNotificationListener();
。
PHP
$notificationCenter->addNotificationListener(
NotificationType::Eyeofcloud_CONFIG_UPDATE,
$updateCallback
);
例
您可以使用硬编码的数据文件进行实例化。如果不传入 SDK 密钥,则 Eyeofcloud 客户端不会自动同步较新版本的数据文件。每当检索更新的数据文件时,只需重新实例化同一客户端即可。
对于简单的应用程序,实例化客户端所需的只是一个数据文件,用于指定给定环境的项目配置。对于大多数高级实现,您需要根据特定要求自定义记录器或错误处理程序。
PHP
$template = "https://cdn.Eyeofcloud.com/datafiles/%s.json";
$configManager = new HTTPProjectConfigManager('QBw9gFM8oTn7ogY9ANCC1z', null, $template, true, null, false, null, null);
$EyeofcloudClient = new Eyeofcloud($datafile, null, null, null, false, null, $configManager);
笔记
启用 JSON 架构验证
跳过 JSON 架构验证可增强实例化期间的性能。在 PHP SDK 中,您可以控制在实例化客户端时是否验证数据文件的 JSON 架构。此示例演示如何跳过 JSON 架构验证:
PHP
// Skip JSON schema validation
$EyeofcloudClient = new Eyeofcloud($datafile);
在安全环境中使用经过身份验证的数据文件
您可以使用服务器端(仅限)Eyeofcloud SDK(如 PHP SDK)从经过身份验证的端点获取 Eyeofcloud 数据文件。
要使用经过身份验证的数据文件,请从 Settings**>Environments** 的 Eyeofcloud 应用下载 Eyeofcloud 环境的访问令牌。选择安全环境,然后复制_数据文件访问令牌_。下面的示例展示了如何使用访问令牌和 sdkKey 初始化 Eyeofcloud 客户端,使客户端能够获取经过身份验证的数据文件并完成初始化。
PHP
// fetch the datafile from an authenticated endpoint
use Eyeofcloud\EyeofcloudFactory;
$sdkKey = '<YOUR_SDK_KEY>';
$datafileAuthToken = '<YOUR_DATAFILE_ACCESS_TOKEN>';
$optly = EyeofcloudFactory::createDefaultInstance($sdkKey, null, $datafileAuthToken);