optimizely/optimizely-sdk

Optimizely PHP SDK,用于Optimizely功能实验、Optimizely全栈(旧版)和Optimizely Rollouts


README

Packagist Build Status Coverage Status Total Downloads Apache 2.0

此存储库包含用于与Optimizely功能实验和Optimizely全栈(旧版)一起使用的PHP SDK。

Optimizely功能实验是一款A/B测试和功能管理工具,适用于产品开发团队,使您可以在每个步骤进行实验。使用Optimizely功能实验可以让您的路线图上的每个功能都成为发现隐藏洞察的机会。了解更多信息请访问 Optimizely.com,或查看 开发者文档

Optimizely Rollouts是面向开发团队的无偿功能标志。您可以在任何应用程序中轻松推出和回滚功能,无需代码部署,从而降低路线图上每个功能的风险。

开始使用

有关使用SDK的详细说明,请参阅 PHP SDK的开发者文档

要求

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

SDK版本4.0.0需要PHP8+。SDK版本3需要PHP5.5+至PHP7。

安装SDK

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

php composer.phar require optimizely/optimizely-sdk

使用PHP SDK

初始化

创建Optimizely客户端,例如

<?php

use Optimizely\Optimizely;

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

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

<?php

use Optimizely\OptimizelyFactory;

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

要访问您的HTTPProjectConfigManager

<?php

use Optimizely\Optimizely;

/** @var Optimizely $optimizelyClient */
$configManager = $optimizelyClient->configManager;

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

<?php

use Optimizely\Optimizely;
use Optimizely\ProjectConfigManager\HTTPProjectConfigManager;

$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 将更新将通过 getConfig 返回的内部ProjectConfig实例。

使用HTTPProjectConfigManager

<?php

use Optimizely\ProjectConfigManager\HTTPProjectConfigManager;

$configManager = new HTTPProjectConfigManager(<<SDK_KEY>>);

SDK密钥

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

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

SDK开发

单元测试

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

./vendor/bin/phpunit

贡献

请参阅CONTRIBUTING

其他Optimizely SDK