okdewit/optimizely-php-sdk

Optimizely SDK 用于全栈 PHP 项目。

4.0.3 2021-03-29 20:40 UTC

README

这是一个分支仓库,与 Packagist 上的主流 Optimizely SDK 独立发布。它被标记为新的主版本 v4.0.0,并依赖于 Monolog v2.0.0 以解决 Laravel 7 和 8 与 Monolog v1.0.0 的冲突,后者无法使用 Monolog v1.0.0。

Optimizely PHP SDK

Build Status Coverage Status Total Downloads Apache 2.0

此仓库包含用于与 Optimizely Full Stack 和 Optimizely Rollouts 一起使用的 PHP SDK。

Optimizely Full Stack 是为产品开发团队提供的 A/B 测试和功能标志管理。在任何应用程序中进行实验。让您的路线图上的每个功能都成为学习的机会。更多信息请访问 https://www.optimizely.com/platform/full-stack/,或查看 文档

Optimizely Rollouts 是为开发团队提供的免费功能标志。在任何应用程序中轻松推出和回滚功能,无需代码部署。减轻您路线图上每个功能的潜在风险。更多信息请访问 https://www.optimizely.com/rollouts/,或查看 文档

入门指南

安装 SDK

Optimizely PHP SDK 可以通过 Composer 安装。请使用以下命令

php composer.phar require optimizely/optimizely-sdk

功能管理访问

要访问 Optimizely 仪表板中的功能管理配置,请联系您的 Optimizely 账户经理。

使用 SDK

初始化

创建 Optimizely 客户端,例如

$optimizely = new Optimizely(<<DATAFILE>>);

或者您也可以使用 OptimizelyFactory 方法创建一个 Optimizely 客户端,使用您的 SDK 密钥、可选的回退数据文件和可选的数据文件访问令牌。使用此方法内部创建 HTTPProjectConfigManager。有关更多详细信息,请参阅 HTTPProjectConfigManager

$optimizelyClient = OptimizelyFactory::createDefaultInstance("your-sdk-key", <<DATAFILE>>, <<DATAFILE_AUTH_TOKEN>>);

要访问您的 HTTPProjectConfigManager

$configManager = $optimizelyClient->configManager;

或者您也可以在构造函数中提供 ProjectConfigManagerInterface 的实现

$configManager = new HTTPProjectConfigManager(<<SDK_KEY>>);
$optimizely = new Optimizely(<<DATAFILE>>, null, null, null, false, null, $configManager);

ProjectConfigManagerInterface

ProjectConfigManagerInterface 提供了 getConfig 方法,用于检索 ProjectConfig 实例。

HTTPProjectConfigManager

HTTPProjectConfigManagerProjectConfigManagerInterface 接口的一个实现。

fetch 方法会向配置的 URL 发送阻塞的 HTTP GET 请求,以下载项目数据文件并初始化 ProjectConfig 实例。

调用 fetch 将更新内部 ProjectConfig 实例,该实例将由 getConfig 返回。

使用 HTTPProjectConfigManager
$configManager = new HTTPProjectConfigManager(<<SDK_KEY>>);
SDK 密钥

Optimizely 项目 SDK 密钥;除非覆盖源 URL,否则是必需的。

每当获取新的数据文件并更新 ProjectConfig 时,都会触发通知。要订阅这些通知,请使用 $notificationCenter->addNotificationListener(NotificationType::OPTIMIZELY_CONFIG_UPDATE, $updateCallback)

文档

查看Optimizely Full Stack的开发者文档,了解如何设置第一个Full Stack项目并使用SDK。

开发

单元测试

运行所有测试

您可以使用以下命令运行所有单元测试:

./vendor/bin/phpunit

贡献

请参阅贡献指南