初始化开发工具包

云眼About 5 min

初始化开发工具包

本主题介绍如何在应用程序中初始化云眼灰度发布(特性标帜)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 提供 ProjectConfigManagerInterfaceopen in new window 的默认实现。

可以使用 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 
);

ProjectConfigManagerInterfaceopen in new window 公开用于检索 ProjectConfig 实例的getConfig方法。

HTTPProjectConfigManager


HTTPProjectConfigManageropen in new windowProjectConfigManagerInterfaceopen in new window 接口的实现。

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 覆盖位置。
urlTemplateSDK 密钥的参数化数据文件 URL。
fetchOnInitBoolean 标志,用于指定是否应在初始化 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);
Last update:
Contributors: zhangweixue,“zhangweixue”